您的位置:首页 > 移动开发 > IOS开发

IOS设计模式学习(4)工厂方法

2013-06-25 20:33 323 查看

1 前言

几乎在每个面向对象语言的应用程序中都能看到工厂方法。工厂方法是抽象工厂方法的组成部分。对象工厂与生产有形产品的真实工厂类似,比方说:你让工厂给你生产产品,你给他们发送一个“生产产品”的消息。工厂就会按照相应的“生产产品”的协议,启动器生产线。过程结束后,就会返回所生产的特定类型的产品。我们把“生产”这个词称作工厂方法,因为他是命令生产者(工厂)得到想要的产品的方法。

今天我们就来学习一下工厂方法。

2 详述

2.1 说明

工厂方法也成为虚拟构造器(virtual constructor)。它适用于这种情况:一个类无法预期需要生成哪个类的对象,想让其子类来制定所生成的对象。

抽象的Product(产品)定义了工厂方法创建对象的接口。ConcreteProduct实现了Product接口。Creator定义了返回Product对象的工厂方法。它也可以为工厂方法顶一个默认实现,返回默认的ConcreteProduct对象。Creator的其他操作可以调用此工厂方法创建Product对象。ConcreteCreator是Creator的子类。它重载了工厂方法,以返回ConcreteProduct的实例。

工厂方法模式:定义创建对象的接口,让子类决定实例化哪一个类。工厂方法使得一个类的实例化延迟到其子类。

2.2 何时使用

(1)编译时无法确定预期要创建的对象的类;

(2)类想让其子类决定运行时创建什么;

(3)类有若干辅助类为其子类,而你想将返回哪个子类这一信息局部化。

工厂方法模式让客户程序可以要求由工厂方法创建的对象拥有一组共同的行为。所以往类层次结构中引入新的具体产品并不需要修改客户端代码,因为返回的任何具体对象的接口都跟客户端一直在用的从前的接口相同。

  工厂设计模式是面向对象软件设计中应用非常普遍的设计模式。工厂方法从代码中消除了对应用程序特有的耦合。代码只需要处理Product抽象接口。所以同一代码得以复用,在应用程序中与用户定义的任何ConcreteProduct类一起工作。

3 结语

以上是所有内容,希望对大家有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息