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