抽象工厂模式——学习笔记
来源:互联网 发布:foxtable软件 编辑:程序博客网 时间:2024/05/18 02:14
1.抽象工厂模式——是对产品角色的抽象,面对的问题是多个产品等级结构的系统设计,这是与工厂方法模式最大的区别(工厂方法模式面对的是一个产品等级结构),如果使用多个工厂方法模式来实现,会导致相似的工厂方法的数目越来越多。
2.要创建一个具体产品对象,需先指明产品等级结构(一个产品系列button,textview,imageview等)和产品族(通常为系统环境因素),有几个产品族,就有几个具体工厂,每一个具体工厂负责创建同一个产品族,不同产品等级结构的产品。有多少个产品等级结构,工厂类里就有多少个工厂方法。
3.适应场合:
(1)使用产品的客户端不应当依赖于具体产品是如何创建的这些细节,对所有的工厂方法都是这样的。
(2)有多个系列(产品族)的产品(产品等级结构)被使用。
图中实例为Unix产品族和Windows产品族,Button、Text两个产品等级结构,UnixFactory负责创建Unix系统下的控件,WindowsFactory负责创建Windows下的控件。
“开-闭”原则分析:(对扩展开放,对修改关闭)
对抽象工厂系统的扩展可以:
(1)添加新的产品族; 即添加新的具体工厂 类,不需要修改原有代码;
(2)添加新的产品等级结构;即要添加新的工厂方法,要所有原有的具体工厂类都添加一个工厂方法,违背了“开-闭”原则。
相关模式:
(1)如果只需要一个具体工厂的实例可以使用单例模式。
(2)抽象工厂与具体工厂可以合并,返回具体的工厂。
- 抽象工厂模式——学习笔记
- 设计模式学习笔记——简单工厂模式、工厂方法模式、抽象工厂模式
- 设计模式学习笔记——抽象工厂模式
- 设计模式学习笔记——抽象工厂模式
- 设计模式学习笔记——抽象工厂模式
- 十一、抽象工厂模式——设计模式学习笔记
- 《设计模式》学习笔记4——抽象工厂模式
- 设计模式学习笔记—抽象工厂模式
- 《设计模式》学习笔记——ABSTRACT FACTORY 抽象工厂
- 抽象工厂模式-- 学习笔记
- 【学习笔记】抽象工厂模式
- 《Head First 设计模式》学习笔记——工厂模式 + 抽象工厂模式
- 设计模式学习—抽象工厂模式
- 设计模式笔记——抽象工厂
- 设计模式学习笔记-抽象工厂模式
- 设计模式学习笔记--抽象工厂模式
- 设计模式学习笔记-抽象工厂模式
- iOS学习笔记(5)——设计模式之工厂方法、抽象工厂
- 框架窗口、文档和视图
- 操作系统基础知识
- 递归解决汉诺塔问题和二叉树的先序中序后序遍历问题
- android 代码中获取Resource中的字符串
- serviceBuilder学习网址
- 抽象工厂模式——学习笔记
- 设计的核心任务之一:层次的控制
- android 获取屏幕的分辨率
- 我的csdn博客正式开张
- POJ 1274 网络流最大匹配
- Nginx技术交流Q群:225942451(探讨安装、部署、模块开发、源码分析,及其他知名服务端开源软件)
- Linux 技巧:让进程在后台可靠运行的几种方法
- Java线程同步与多线程
- start.S进一步、更详细的、深入的解释和分析