设计模式学习笔记(四)抽象工厂模式
来源:互联网 发布:淘宝暴利行业排行榜 编辑:程序博客网 时间:2024/06/11 21:40
抽象工厂模式(Abstract Factory Pattern):
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.(为创建一组相关或相互依赖的对象提供一个接口,并且无需指定它们的具体类。)
抽象工厂模式是工厂方法模式的升级版本,在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。
产品族(产品线):功能相关联的产品组成的家族。一般是位于不同的等级结构中的相同位置上。每一个产品族中含有产品的数目,与产品等级结构的数目是相等的,形成一个二维的坐标系,水平坐标是产品等级结构,纵坐标是产品族,叫做相图。对于每一个产品族,都有一个具体工厂,或者在抽象工厂类中就有一个对应的创建方法。比如女娲造人中的人种(黄种人、白种人、黑种人)。
产品等级结构:一种产品内部的不同等级。比如女娲造人中的性别(男、女)。
区别:由产品族区分出来不同类型的产品。产品等级结构只是产品内部的区别,不能用来区分不同的产品。
抽象工厂模式的优点:
封装性,每个产品的实现类不是高层模块要关心的。只要知道对应的工厂类是谁,就能创建出想要的对象。
产品族内的约束为非公开状态。例如生产男女的比例。
抽象工厂模式的缺点:
最大的缺点就是产品族扩展非常困难,不符合开闭原则。
抽象工厂模式的使用场景:
当一个对象族都有相同的约束,则可以使用抽象工厂模式。
抽象工厂模式的注意事项:
抽象工厂模式扩展产品族非常困难,但很容易扩展产品等级结构。
- 设计模式学习笔记(四)抽象工厂模式
- 设计模式学习(四)抽象工厂
- 设计模式学习(四) ------ 抽象工厂模式
- php设计模式学习系列(四)--抽象工厂模式
- 设计模式学习笔记-抽象工厂模式
- 设计模式学习笔记--抽象工厂模式
- 设计模式学习笔记-抽象工厂模式
- 设计模式(四)-工厂模式-抽象工厂模式
- java 设计模式 学习笔记(3) 抽象工厂模式
- 设计模式之--抽象工厂模式(学习分析笔记)
- #Android设计模式学习笔记(抽象工厂模式)
- 设计模式学习笔记(抽象工厂模式)
- 设计模式笔记(四)--工厂方法模式、抽象工厂模式
- 设计模式-抽象工厂模式(学习)
- 设计模式学习笔记(4)抽象工厂
- C#设计模式学习笔记-抽象工厂
- [设计模式整理笔记 四] 抽象工厂模式(Abstract Factory)
- 设计模式学习(2)工厂模式,抽象工厂模式
- 动手写机器学习算法:K-Means聚类算法
- 十五分钟学会用python编写小游戏
- ADAMS shortcut
- BAT机器学习面试题及解析(256-260题)
- Mysql -SOUNDEX()函数
- 设计模式学习笔记(四)抽象工厂模式
- 基于OpenCV的视频图像组态 (8) :随机线条动画效果
- Tiny6410 的NandFlash(K9GAG08U0E)
- DecaWave产品简略总结
- 第十五周项目一(3)——验证算法之直接选择排序
- iOS开发UI篇—Quartz2D复杂图形绘制(三) 图片文字,进度条,饼形图,小黄人
- 初探Laravel框架中的源码(一)
- 高德地图(一)之简单集成
- Android studio提示Android studio 在gradle文件中引入support:appcompat-v7:22.2.0包的时候出现Failed to resolve的错误