设计模式------抽象工厂模式(AbstractFactoryPattern)
2014-12-08 21:37
337 查看
我写过简单工厂模式(SimpleFactoryPattern)和工厂方法模式(FactoryMethodPattern)的对比的博客。现在学到抽象工厂模式(AbstractFactoryMethod)更是让人大开眼界。
先上抽象工厂模式(AbstractFactoryPattern)的UML类图
我认为抽象工厂模式(AbstractFactoryPattern)和工厂方法模式(FactoryMethodPattern)的唯一区别就是FactoryA和FactoryB可以创建多个抽象产品。
下面列出来具体区别:
简单工厂模式:
一个抽象产品类,可以派生出多个抽象产品类;
一个抽象工厂类,可以派生出多个具体工厂类;
每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:
多个抽象产品类,每个抽象产品类可以派生出多个具体产品类;
一个抽象工厂类,可以派生出多个具体工厂类;
每个具体工厂类可以创建多个具体产品类的实例。
区别:
工厂方法模式(FactoryMethodPattern)只有一个抽象产品类,而抽象工厂模式(AbstractFactoryPattern)有多个;
工厂方法模式(FactoryMethodPattern)的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式(AbstractFactoryPattern)可以创建多个。
抽象工厂模式(AbstractFactoryPattern)的缺点:
当用户需求来自增加功能,需要改好几处才能实现,修改代码较多。
当然如果想要改进抽象工厂模式(AbstractFactoryPattern)也是可以的。
可以利用C#特有的反射技术、或反射+配置文件都可以实现。
先上抽象工厂模式(AbstractFactoryPattern)的UML类图
我认为抽象工厂模式(AbstractFactoryPattern)和工厂方法模式(FactoryMethodPattern)的唯一区别就是FactoryA和FactoryB可以创建多个抽象产品。
下面列出来具体区别:
简单工厂模式:
一个抽象产品类,可以派生出多个抽象产品类;
一个抽象工厂类,可以派生出多个具体工厂类;
每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:
多个抽象产品类,每个抽象产品类可以派生出多个具体产品类;
一个抽象工厂类,可以派生出多个具体工厂类;
每个具体工厂类可以创建多个具体产品类的实例。
区别:
工厂方法模式(FactoryMethodPattern)只有一个抽象产品类,而抽象工厂模式(AbstractFactoryPattern)有多个;
工厂方法模式(FactoryMethodPattern)的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式(AbstractFactoryPattern)可以创建多个。
抽象工厂模式(AbstractFactoryPattern)的缺点:
当用户需求来自增加功能,需要改好几处才能实现,修改代码较多。
当然如果想要改进抽象工厂模式(AbstractFactoryPattern)也是可以的。
可以利用C#特有的反射技术、或反射+配置文件都可以实现。
相关文章推荐
- 解读设计模式----抽象工厂模式(AbstractFactory Pattern)
- C#设计模式——抽象工厂模式(Abstract Factory Pattern)
- 浅谈 java 设计模式--抽象工厂模式(AbstractFactory pattern)
- 五.创建型设计模式——Abstract Factory Pattern(抽象工厂模式)
- 极速理解设计模式系列:10.抽象工厂模式(Abstract Factory Pattern)
- 设计模式 - Abstract Factory Pattern(抽象工厂模式)
- 解读设计模式----抽象工厂模式(AbstractFactory Pattern)
- 我所理解的设计模式(C++实现)——抽象工厂模式(Abstract Factory Pattern)
- 设计模式——抽象工厂模式【Abstract Factory Pattern】
- Net设计模式之抽象工厂模式(Abstract Factory Pattern)
- [创建型模式系列]Abstract factory of Design Pattern模式设计之抽象工厂模式
- 极速理解设计模式系列:10.抽象工厂模式(Abstract Factory Pattern)
- 设计模式学习总结-抽象工厂模式(Abstract Factory Pattern)
- 设计模式学习总结-抽象工厂模式(Abstract Factory Pattern)
- Net设计模式实例之抽象工厂模式(Abstract Factory Pattern)
- 设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- 设计模式学习总结-抽象工厂模式(Abstract Factory Pattern)
- 设计模式(三)抽象工厂模式(Abstract Factory Pattern)
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)