设计模式—抽象工厂
2013-11-28 15:20
337 查看
定义
抽象工厂是OOP的体现,抽象出行为(接口),面向接口编程
现实
汽车厂的冲压设备,冲压前车门,后车门只需要修改冲压设备的冲头(前车门冲压头,后车门冲压头),只需修改配置,调出对应的冲头
例子
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/d2258435c3536e439fafb9fcea33ae07.png)
AbstractFactory:抽象工厂类
ISpeak:speak方法,说明是能说的对象
Chinese:说中国话
如果现在这个系统给中国用就实现Chinese对象,以次类推
工厂类:通过读取配置文件,实例化对应的实体对象。
抽象工厂是OOP的体现,抽象出行为(接口),面向接口编程
现实
汽车厂的冲压设备,冲压前车门,后车门只需要修改冲压设备的冲头(前车门冲压头,后车门冲压头),只需修改配置,调出对应的冲头
例子
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/d2258435c3536e439fafb9fcea33ae07.png)
AbstractFactory:抽象工厂类
ISpeak:speak方法,说明是能说的对象
Chinese:说中国话
public class AbstractFactory { /// <summary> /// 获取能说话的对象 /// </summary> /// <returns></returns> public static ISpeak GetCanSpeakObject() { var speakTypeName= ConfigurationManager.AppSettings.Get("type"); var speakType= Type.GetType(speakTypeName); var assembly = Assembly.GetCallingAssembly(); return (ISpeak)assembly.CreateInstance("大话设计模式.American"); } }
namespace 大话设计模式 { public interface ISpeak { string Speak(); } }
namespace 大话设计模式 { public class American : ISpeak { public string Speak() { return "我说英语!"; } } }
namespace 大话设计模式 { public class Chinese : ISpeak { public string Speak() { return "我说中国话!"; } } }
namespace 大话设计模式 { public class Japanese : ISpeak { public string Speak() { return "亚美爹!"; } } }
如果现在这个系统给中国用就实现Chinese对象,以次类推
工厂类:通过读取配置文件,实例化对应的实体对象。
相关文章推荐
- 【设计模式】抽象工厂
- PHP中的设计模式-简单工厂,静态工厂,工厂方法,抽象方法的关系
- 抽象工厂设计模式(Abstract Factory Design Pattern)
- iOS设计模式 - 抽象工厂
- 【设计模式】——抽象工厂
- C++设计模式----抽象工厂
- 设计模式培训之三:抽象工厂
- java设计模式之抽象工厂
- 设计模式 抽象工厂 Abstract Factory
- 设计模式(二):简单工厂、工厂和抽象工厂的区别。
- 设计模式-工厂方法 简单工厂 抽象工厂 模板方法
- 设计模式 之 抽象工厂
- PHP 设计模式 抽象工厂
- 学习笔记之设计模式:抽象工厂
- 设计模式学习--抽象工厂
- 设计模式之抽象工厂
- 【设计模式】-抽象工厂
- JAVA设计模式之二抽象工厂
- JAVA设计模式之二抽象工厂
- 设计模式系列10---高度定制的抽象工厂方法模式