Beispiel #1
0
            public ISmsSender Create()
            {
                // 短信发送者创建,从配置管理中读取当前的发送方式,并创建实例
                var smsConfig = _configProvider.GetSmsConfig();
                // 通过工厂方法的方式,将如何创建具体短信发送者的逻辑从这里移走,实现了这个方法本身的稳定。
                var factoryHandler = _smsSenderFactoryHandlers.Single(x => x.SmsSenderType == smsConfig.SmsSenderType);
                var smsSender      = factoryHandler.Create();

                return(smsSender);
            }
Beispiel #2
0
            public ISmsSender Create()
            {
                // 短信发送者创建,从配置管理中读取当前的发送方式,并创建实例
                SmsConfig smsConfig = _configProvider.GetSmsConfig();
                // 通过工厂方法的方式,将如何创建具体短信发送者的逻辑从这里移走,实现了这个方法本身的稳定。
                ISmsSenderFactoryHandler factoryHandler = _smsSenderFactoryHandlers[smsConfig.SmsSenderType];
                ISmsSender smsSender = factoryHandler.Create();

                return(smsSender);
            }
Beispiel #3
0
            public ISmsSender Create()
            {
                // 短信发送者创建,从配置管理中读取当前的发送方式,并创建实例
                var smsConfig = _configProvider.GetSmsConfig();

                switch (smsConfig.SmsSenderType)
                {
                case SmsSenderType.Console:
                    return(new ConsoleSmsSender());

                case SmsSenderType.HttpAPi:
                    return(new HttpApiSmsSender());

                default:
                    return(new HttpApiSmsSender());
                }
            }
Beispiel #4
0
            public ISmsSender Create()
            {
                // 短信发送者创建,从配置管理中读取当前的发送方式,并创建实例
                SmsConfig smsConfig = _configProvider.GetSmsConfig();

                Console.WriteLine(smsConfig.SmsSenderType);
                // Not good enough: Not decoupled from the implementation class of SmsSender
                switch (smsConfig.SmsSenderType)
                {
                case SmsSenderType.Console:
                    return(new ConsoleSmsSender());

                case SmsSenderType.HttpAPi:
                    return(new HttpApiSmsSender());

                default:
                    return(new HttpApiSmsSender());
                }
            }