IOS设计模式学习(5)抽象工厂
2013-06-28 14:19
399 查看
1 前言
抽象工厂提供了一个接口,用于创建一系列有关联或者相互依存的对象,而不必指定其具体类或其创建的细节。客户端与从工厂得到的具体对象之间没有耦合。2 详述
2.1 简述
Client只知道AbstractFactory和AbstractProduct,每个工厂类中,结构与实际操作的细节按照黑箱对待。甚至产品也不知道谁将负责创建他们。只有具体工厂知道为客户端创建什么,如何创建。这个模式很多时候它都用工厂方法模式来实现。工厂方法把实际的创建过程推迟到重载它的子类中。抽象工厂模式常与原型模式,单例模式和享元模式等其他设计模式一起使用。
2.2 抽象工厂与工厂方法的区别
抽象工厂:(1)通过对象组合创建抽象产品;
(2)创建多系列产品;
(3)必须修改父类的接口才能支持新的产品。
工厂方法:
(1)通过类继承创建产品;
(2)创建一种产品;
(3)子类化创建者并重载工厂方法以创建新产品。
2.3 类簇
类簇是基础框架中一种常见的设计模式,基于抽象工厂模式的思想。它将若干相关的私有具体工厂子类集合到一个工友的抽象超类之下。例如:数 包含了各种数值类型的完整集合,如字符,整数,浮点数和双精度数。这些数值类型是数的自己。所以NSNumber自然成为这些数子集的超类型(super-type)。类簇是抽象工厂的一种形式。比如,NSNumber是一个高度抽象的工厂,而NSCFBoolean和NSCFNumber是具体工厂子类。
2.4 再次对比抽象工厂和工厂
抽象工厂被其多个具体工厂类型共有的抽象工厂类型。如果抛开“抽象”一词,“工厂”通常是指“具体”工厂,而且,它也没有工厂方法的意思。有时候,一开始在设计中使用具体工厂,而其后将其重构为使用多个具体工厂的抽象工厂。
3 结语
以上是所有内容,希望对大家有所帮助。相关文章推荐
- iOS学习笔记(5)——设计模式之工厂方法、抽象工厂
- 设计模式学习(四)抽象工厂
- “设计模式”学习之一:工厂方法与抽象工厂
- 设计模式学习(三)抽象工厂
- iOS 设计模式之抽象工厂
- 设计模式深入学习IOS版(2)简单工厂模式
- 设计模式学习笔记(一):抽象工厂
- iOS设计模式 - 抽象工厂
- 设计模式学习笔记:抽象工厂和工厂方法的区别
- 换个角度学习设计模式-抽象工厂
- 学习笔记之设计模式:抽象工厂
- iOS 设计模式之抽象工厂
- 跟着实例学习设计模式(5)-工厂方法 、抽象工厂的差别
- 设计模式学习笔记(4)抽象工厂
- 设计模式学习1---抽象工厂
- C#面向对象设计模式纵横谈 学习笔记3 Abstract Factory 抽象工厂
- iOS设计模式 - 抽象工厂
- 小白学习设计模式——简单工厂、工厂方法、抽象工厂
- iOS设计模式-抽象工厂