抽象工厂模式
来源:互联网 发布:方维直播源码 下载 编辑:程序博客网 时间:2024/06/14 23:14
什么是抽象工厂
关于这个问题,我们可以采用设计模式那本书里面对设计模式的一些规定来介绍。
- 意图
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。- 别名
Kit- 动机
解决类似于软件的不同视图风格的问题。
这是设计模式书给出的关于抽象工厂的介绍。在对其意图的描述当中,涉及到一系列相关或相互依赖对象。这里应该怎样理解这里所说的相关或相互依赖呢?
首先应当明确的是,这些对象一定不属于同一个类型(type),如果需要产生一系列同一类型的对象,那么可以使用工厂模式来产生。(这里使用的是类型,类和类型的区别,一个简要的解释就是:class is a type,type describe objects, references and functions.)这也是抽象工厂模式和工厂模式的最大不同,抽象工厂产生的一系列对象属于不同的类型,而工厂模式产生的对象都属于同一个类型。
既然已经明确了他们之间肯定是不同类型的对象,现在我们就应该着眼于相关或相互依赖。这也说明了抽象工厂产生的对象一定是有相互关系的,不能是毫无关系的一系列对象。我对于这部分的理解是,这里的相关和相互依赖应该是软件设计层面上的相关或相互依赖,而不是单纯的代码上面的相关。代码层面可以相去甚远,就比如我们在设计软件的时候,可以把相关的元素设计成同一个系列的,但是他们的表现形式可以有很大的不同。
举个简单的例子,在文档编辑器里面图片、文字和音频等可以看成是同一个系列的对象,可以使用一个抽象工厂来生成。
抽象工厂的优点
最主要的优点就是可以在类的内部对产品族进行约束。所谓的产品族,一般或多或少的都存在一定的关联,抽象工厂模式就可以在类内部对产品族的关联关系进行定义和描述,而不必专门引入一个新的类来进行管理。
设计模式的主要作用是降低程序的耦合度,增加各部分的可复用性。我们一定要着眼于这个目标,而不是滥用设计模式。因为设计模式一般都会降低程序的运行效率,所以在确定能给程序带来好的时候才使用相应的设计模式。
- 工厂模式 -- 抽象工厂
- 工厂模式-抽象工厂
- 工厂模式-抽象工厂
- 工厂模式/抽象工厂模式
- 工厂模式&&抽象工厂模式
- 工厂模式---抽象工厂模式
- 工厂模式&抽象工厂模式
- 工厂模式,抽象工厂模式
- 【模式】抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 工厂方法,抽象工厂模式
- 2,工厂模式--抽象工厂
- C#工厂模式-抽象工厂
- 工厂模式与抽象工厂
- 抽象工厂设计模式
- 抽象工厂模式
- jQuery入门学习笔记
- c语言排序算法之插入排序
- HQL: Hibernate查询语言
- [网络流24题]飞行员配对方案
- 学习笔记------数据结构(C语言版)数组之三元组顺序表
- 抽象工厂模式
- GCD 深入理解(一)
- TQ2440,学习笔记之 交叉工具链
- Java 线程池 ThreadPoolExecutor 源码分析
- smartmontools可以用來監控HD的溫度
- 自制简单的Lambert光照
- 公平的席位分配
- 【Linux】ldd命令
- 2016年ios在杭州和武汉的行情,刚从培训出来的,学的一般。