工厂模式的三种类型
更新时间:2023-12-01 04:49:01 阅读量: 教育文库 文档下载
工厂模式的三种类型:
1抽象工厂模式是所有形态的工厂模式中最为抽 象和最其一般性的。抽象工厂模式可以向客户端 提供一个接口,使得客户端在不必指定产品的具 体类型的情况下,能够创建多个产品族的产品对 象。
1.抽象工厂(Creator)角色
抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必须实现这个接口。
2.具体工厂( Concrete Creator)角色
具体工厂类是抽象工厂的一个实现,负责实例化某个产品族中的产品对象。
3.抽象(Product)角色
抽象模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
4.具体产品(Concrete Product)角色 抽象模式所创建的具体实例对象
总结:抽象工厂中方法对应产品结构,具体工厂对应产品族。
2工厂方法模式同样属于类的创建型模式又被称
为多态工厂模式 。工厂方法模式的意义是定义一个创建 产品对象的工厂接口,将实际创建工作推迟到子类当中。 核心工厂类不再负责产品的创建,这样核心类成为一个 抽象工厂角色,仅负责具体工厂子类必须实现的接口, 这样进一步抽象化的好处是使得工厂方法模式可以使系 统在不修改具体工厂角色的情况下引进新的产品。
1.抽象工厂(Creator)角色
工厂方法模式的核心,任何工厂类都必须实现这个接口。
2.具体工厂( Concrete Creator)角色
具体工厂类是抽象工厂的一个实现,负责实例化产品对象。
3.抽象(Product)角色
工厂方法模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
4.具体产品(Concrete Product)角色 工厂方法模式所创建的具体实例对象
工厂方法模式与简单工厂模式在结构上的不同不是很明显。工厂方 法类的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具 体类上。
工厂方法模式之所以有一个别名叫多态性工厂模式是因为具体工 厂类都有共同的接口,或者有共同的抽象父类。
当系统扩展需要添加新的产品对象时,仅仅需要添加一个具体对 象以及一个具体工厂对象,原有工厂对象不需要进行任何修改,也 不需要修改客户端,很好的符合了“开放-封闭”原则。而简单工厂 模式在添加新产品对象后不得不修改工厂方法,扩展性不好。
工厂方法模式退化后可以演变成简单工厂模式。
3简单工厂模式属于类的创建型模式,又叫做静态
工厂方法模式。通过专门定义一个类来负责创建 其他类的实例,被创建的实例通常都具有共同的 父类。
1.工厂(Creator)角色
简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。
2.抽象(Product)角色
简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
3.具体产品(Concrete Product)角色
简单工厂模式所创建的具体实例对象
在这个模式中,工厂类是整个模式的关键所在。它包含必要的判断 逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的 对象。用户在使用时可以直接根据工厂类去创建所需的实例,而无 需了解这些对象是如何创建以及如何组织的。有利于整个软件体系 结构的优化。
不难发现,简单工厂模式的缺点也正体现在其工厂类上,由于工厂类集中
了所有实例的创建逻辑,所以“高内聚”方面做的并不好。另外,当系统中的 具体产品类不断增多时,可能会出现要求工厂类也要做相应的修改,扩展 性并不很好。
正在阅读:
工厂模式的三种类型12-01
策划案02-27
圣洛朗港尼斯假日酒店(Holiday Inn Nice - Port St Laurent)03-20
幼儿园年检自查报告08-22
新视野大学英语第三版读写教程第二册Unit 4 A Heroes among us课文翻译11-16
上海市教师资格证全资料之心理学概论复习题10-18
神奇的灯泡作文350字07-13
计算机应用基础03-23
浅谈如何争做新时期合格的共产党员05-20
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 工厂
- 类型
- 模式
- 2018数学一模28题新定义习题综合
- 33819-00 - 生产与运作管理(第三版) - 应可福 - 习题答案
- 高中语文第四单元第11课《就任北京大学校长之演说》学案新人教版必修2
- 中央电大《金融理论前沿课题》作业答案 1-10全!
- OSPF特殊区域的总结
- 第2章 线性规划-无答案
- 27092 财务管理学2009年10月及2010年1月试卷及答案精选6
- 荷马史诗中的比喻修辞赏析
- 建筑装饰工程施工班组及分包劳务承包合同()
- 食品生产加工过程中防止污染、变质或损坏的制度
- 吉村镇学习赣州市党代会精神实施方案
- 仁爱英语2014下期unit6 单元测试题
- 2019年最新初中中考数学模拟试卷及答案9198755
- 刮板输送机选型设计
- 三查三改三落实心得体会
- java作业与答案
- 快速诱惑 中文版 Speed - seduction中文版 - 罗斯 - 杰弗瑞
- 《认识计算机》教案说课稿
- 软件工程期末 - 应用题部分
- 普通话技巧详解 - 图文