黑马程序员技术交流社区

标题: iOS设计模式之工厂方法 [打印本页]

作者: jing迪    时间: 2014-4-23 08:47
标题: iOS设计模式之工厂方法
什么是工厂方法?
GOF是这样描述工厂模式的:
“Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.”


在基类中定义创建对象的一个接口,让子类决定实例化哪个类。工厂方法让一个类的实例化延迟到子类中进行。

工厂方法要解决的问题是对象的创建时机,它提供了一种扩展的策略,很好地符合了开放封闭原则。工厂方法也叫做虚构造器(Virtual Constructor)。

什么时候使用工厂方法?
当是如下情况是,可以使用工厂方法:一个类不知道它所必须创建的对象的类时,一个类希望有它的子类决定所创建的对象时。

更多关于工厂方法的介绍,可以参考本文最后给出的参考内容。下面我们就来看看在iOS中工厂方法的一种实现方法。

iOS中工厂方法的实现
如下有一个类图,该图描述了下面即将实现的工厂方法(利用工厂方法,创建出不同的形状)。其中BVShapeFactory为工厂方法的基类,BVShape为形状的基类,BVClient通过BVShapeFactory,利用 BVShapeFactory的子类(BVCircleShapeFactory和BVSquareShapeFactory)分别创建出BVCircleShape和BVSquareShape。






作者: 愿我能    时间: 2014-4-23 08:55
给版主顶一下
作者: 大龄产妇    时间: 2014-4-24 12:59
距离太遥远,膜拜中
作者: 脸皮猴    时间: 2014-4-24 21:22
{:3_47:}完全看不懂。。。。版主。。。你这拉开的距离有点大啊。。。
作者: z82454642    时间: 2014-4-24 22:11
膜拜版主大神




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2