这里介绍一下设计模式中的原型模式。
1、由什么问题引出来的?
在开发中,我们有时需要对一个对象进行复制,然后对这个新对象来进行操作(比如:NSMutbaleArray),我们实现这个复制的操作,就是原型模式。
2. 怎么去设计这个模式?
-> 实现的效果是:在使用时,对象调用copy方法就能创建出一个与原来对象属性值相同的对象。
-> 系统提供的类中,数组、字典、字符串等系统已经实现了这个功能。
3. 自定义类设计这个模式?
我们iOS中对于一个自定义类,实现这个效果的方式就是:
-》遵守NSCoping协议,重写- (id)copyWithZone:
,将自身属性赋值给新的对象。
//<NSCopying>
- (id)copyWithZone:(NSZone *)zone{
CopyTest *obj = [[[CopyTest class] allocWithZone:zone] init];
obj.name = self.name;
return obj;
}
网友评论