IOS设计模式学习(5)抽象工厂

来源:未知 责任编辑:责任编辑 发表时间:2014-05-20 18:26 点击:

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 结语
以上是所有内容,希望对大家有所帮助。

 

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Lexical or Preprocessor Issue 'xxx.h
    • ios学习笔记(二)xcode 4.3.2下实现基本交互
    • ios版本的helloworld
    • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
    • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
    • UITableView一些方法
    • IOS类似iphone通讯录TableView的完整demo【附源码】
    • [iPhone中级]iPhone团购信息客户端的开发 (二)
    • iphone(object-c)内存管理(1)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1