1 何为原型模式:
2 何时使用原型模式:
3 自定义原型模式:
对象的复制相当于java中的clone()方法.也就是对象的深度复制-----即为其分配一个新的内存空间,并将原
对象的内容复制出来,复制也会分配内存空间,那就是你要对复制出来的对象release.Object-C中的对象是否可以被
复制,要看他是否遵循NSCopying协议,同时实现 -(id)coprWithZone:(*NSZone)zone 方法,该方法由系统调
用.
Engine.h
#import <Foundation/Foundation.h>
@interface Engine :NSObject<NSCopying>
@end
Engine.m
/*
NSZone---->一个表示内存空间的对象
这个类方法必修使用[self class]来调用,因为Engine对象可能会有子类,
若子类调用他的copyWithZone方法,由于allocWithZone用的是Engine对象,若
子类新增了成员变量,则新增的成员变量不会分配内存空间,从而造成内存泄露.
*/
#import "Engine.h"
@implementation Engine
-(id) copyWithZone:(NSZone *)zone{
Engine *engine = [[[self class] allocWithZone:zone]init];
return engine;
}
@end