设计模式------抽象工厂模式(AbstractFactoryPattern)
来源:互联网 发布:齐天大圣 知乎 编辑:程序博客网 时间:2024/05/21 06:40
我写过简单工厂模式(SimpleFactoryPattern)和工厂方法模式(FactoryMethodPattern)的对比的博客。现在学到抽象工厂模式(AbstractFactoryMethod)更是让人大开眼界。
先上抽象工厂模式(AbstractFactoryPattern)的UML类图
我认为抽象工厂模式(AbstractFactoryPattern)和工厂方法模式(FactoryMethodPattern)的唯一区别就是FactoryA和FactoryB可以创建多个抽象产品。
下面列出来具体区别:
简单工厂模式:
- 一个抽象产品类,可以派生出多个抽象产品类;
- 一个抽象工厂类,可以派生出多个具体工厂类;
- 每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:
- 多个抽象产品类,每个抽象产品类可以派生出多个具体产品类;
- 一个抽象工厂类,可以派生出多个具体工厂类;
- 每个具体工厂类可以创建多个具体产品类的实例。
区别:
- 工厂方法模式(FactoryMethodPattern)只有一个抽象产品类,而抽象工厂模式(AbstractFactoryPattern)有多个;
- 工厂方法模式(FactoryMethodPattern)的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式(AbstractFactoryPattern)可以创建多个。
抽象工厂模式(AbstractFactoryPattern)的缺点:
当用户需求来自增加功能,需要改好几处才能实现,修改代码较多。
当然如果想要改进抽象工厂模式(AbstractFactoryPattern)也是可以的。
可以利用C#特有的反射技术、或反射+配置文件都可以实现。
0 0
- 设计模式------抽象工厂模式(AbstractFactoryPattern)
- 设计模式-抽象工厂模式(AbstractFactoryPattern)
- 抽象工厂模式AbstractFactoryPattern
- 抽象工厂模式AbstractFactoryPattern
- C++设计模式五--AbstractFactoryPattern(抽象工厂模式)
- 设计模式——抽象工厂模式(AbstractFactoryPattern)
- C++设计模式之——抽象工厂模式(AbstractFactoryPattern)
- 设计模式(抽象工厂)
- 设计模式(4)-抽象工厂模式
- 设计模式:抽象工厂模式(Python)
- 设计模式(JAVA)------抽象工厂模式
- 设计模式(三)---抽象工厂模式
- 抽象工厂模式---设计模式(好)
- 设计模式(3):抽象工厂模式
- 设计模式(三)--抽象工厂模式
- 设计模式(3):抽象工厂模式
- 设计模式(二):抽象工厂模式
- c++设计模式(抽象工厂模式)
- JavaScript简介
- 在VS2010中配置Boost
- 源代码下载
- 程序员必看的书之iOS程序员
- 与Ajax的初次谋面
- 设计模式------抽象工厂模式(AbstractFactoryPattern)
- 数据类型
- 44 c++ m面向对象版表达式计算器 设计缺陷
- 策略模式
- OPENCV回调函数
- CSS自适应布局(左右固定 中间自适应或者右侧固定 左侧自适应)
- 23读取联系人移植到项目中
- 运用指针,调用函数来是3个数从大到小输出(通过异或来交换大小)
- UIView获取屏幕Screen中的坐标位置