iOS设计模式-原型模式

原型模式的定义

"使用原型实例指定创建对象的种类,并通过复制这个原型创建新的对象"。最初的定义出现于《设计模式》(Addison-Wesley,1994)。

结构图

原型模式

从上图可以看到,Mark类中包括一个copy方法,Client调用其拷贝方法copy即可得到实例,不需要手工去创建实例。Dot和Stroke为Mark的子类,实现自身的clone方法,如果Client调用Dot的clone方法,将返回Dot的实例。

何时用原型模式

  • 需要创建的对象应独立于其类型与创建方式
  • 要实例化的类是在运行时决定的
  • 不想要与产品层次相对应的工厂层次
  • 不同类的实例间的差异仅是状态的若干组合。因此复制相应数量的原型比手工实例化更加方便
  • 类不容易创建,比如每个组件可以把其他组件作为子节点的组合对象。复制已有的组合对象并对副本进行修改会更加容易
    以下两种特别常见的情形,我们会想到用原型模式:
  • 有很多的相关的类,其行为略有不同,而且主要差异在于内部属性,如名称等
  • 需要使用组合(树)对象作为其他对象的基础,比如,使用组合对象作为组件来构建另一个组合对象
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容