iOS设计模式解析

原型模式

2018-09-19  本文已影响11人  FY_Chao

WHAT原型模式:

原型模式在Objective-C中,最直观的表现就是NSObject- (id)copy;方法。当我们调用- (id)copy;方法其实最终调用的是-(id)copyWithZone:(NSZone *)zone;。我们可以通过实现<NSCopying>协议中的-(id)copyWithZone:(NSZone *)zone;方法返回复制的新对象。我们根据一个给定的原型可以复制出多个相同类型的实例。在此给原型模型下个定义:给定一个原型类,我们就可以通过复制类或其子类的实例的方式得到多个相同类型的实例

Prototype Pattern

图中的Prototype可以对应Objective-CNSObject类,ConcretePrototype1ConcretePrototype2可能是继承自NSObject的子类。子类各自实现了<NSCopying>-(id)copyWithZone:(NSZone *)zone;的方法。

WHEN原型模式:

我觉得何时使用原型模式主要在:

浅复制 & 深复制

简言之:浅复制就是指针拷贝;深复制就是内容拷贝。不知道的同学请自行百度、Google,需加强基本功。


Shadow Copy:指向同一个对象 Deep Copy:指向不同的对象
上一篇 下一篇

猜你喜欢

热点阅读