Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 适合多模块web应用的设计模式_Design Patterns_Web Applications - Fatal编程技术网

Design patterns 适合多模块web应用的设计模式

Design patterns 适合多模块web应用的设计模式,design-patterns,web-applications,Design Patterns,Web Applications,我想知道处理多模块web应用程序的最佳设计模式 示例:-RESTWeb服务项目将处理不同类型的发送SMS的请求 请求的类型 个人短信触发器 促销短信触发 交互式短信触发器 定时SMS触发器 有不同类型的SMS要发送,每种类型都有自己的业务逻辑要在触发SMS之前应用。 哪种设计模式适合处理它 请提供您的建议或链接,这将对我们的项目设计有很大帮助。老实说,如果这是您的应用程序的唯一范围,请保持简单,不要试图过度设计或不必要地实现多组设计模式 有不同类型的短信要发送,每种类型都有自己的 触发SMS之前

我想知道处理多模块web应用程序的最佳设计模式

示例:-RESTWeb服务项目将处理不同类型的发送SMS的请求

请求的类型

  • 个人短信触发器
  • 促销短信触发
  • 交互式短信触发器
  • 定时SMS触发器
  • 有不同类型的SMS要发送,每种类型都有自己的业务逻辑要在触发SMS之前应用。 哪种设计模式适合处理它


    请提供您的建议或链接,这将对我们的项目设计有很大帮助。

    老实说,如果这是您的应用程序的唯一范围,请保持简单,不要试图过度设计或不必要地实现多组设计模式

    有不同类型的短信要发送,每种类型都有自己的 触发SMS之前要应用的业务逻辑

    您没有提到业务逻辑如何根据SMS类型而有所不同。因此,以最简单的形式,您可以这样开始:

    public interface ISMSService 
    {
        void Send();
    }
    
    // One class for each SMS type
    public class IndividualSMS : ISMSService 
    {
        public IndividualSMS(<paramters>) {
            // <parameters> can be different based on SMS type
        }
    
        public void Send() {
            // Implement SMS type specific logic
        }
    }
    
    public class SMSManager {
        private readonly ISMSService smsService;
    
        // Inject ISMSService implementation from calling code
        public SMSManager(ISMSService smsService) {
            this.smsService = smsService;
        }
    
        public void SendSMS() {
            this.smsService.Send();
        }
    }
    
    // Client code
    var individualSMS = new IndividualSMS(<parameters>); // Use DI container for resolving
    var smsManager = new SMSManager(individualSMS);
    
    公共接口ISMSService
    {
    无效发送();
    }
    //每种SMS类型一个类
    公共类个人短信:ISMSService
    {
    公共个人短信(){
    //可以根据SMS类型而有所不同
    }
    公共无效发送(){
    //实现SMS类型特定逻辑
    }
    }
    公共类SMSManager{
    专用只读ISMSService SMSSService;
    //从调用代码注入ISMSService实现
    公共SMS管理器(ISMService smsService){
    this.smsService=smsService;
    }
    公共无效发送SMS(){
    this.smsService.Send();
    }
    }
    //客户端代码
    var individualSMS=新的individualSMS();//使用DI容器来解析
    var smsmsmanager=新的smsmsmanager(individualSMS);