iOS原型模式(拷贝模式)

原型模式:是一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例.被复制的实例就是我们所称的原型,这个原型是可定制的. 原型模式多用于创建复杂的或者耗时的实例, 因为这种情况下,复制一个已经存在的实例可以使程序运行更高效,或者创建值相等,只是命名不一样的同类数据.
原型模式实际意义上来说是拷贝、而且一般情况下都是深拷贝。在 iOS 中有相对应的方法 [obj copy] 实现拷贝。
iOS开发中原型模式的主要使用应用为数组字典集合
下面描绘一种原型模式的使用场景,假如有一种细菌类,有一个name属性(实际开发中可能会有许多属性),完全可以通过实例copy来进行创建。

  1. 原型模型在iOS中需要引用NSMutableCopying、NSCopying协议
  2. 实现-(id)copyWithZone:(NSZone *)zone代理方法
-(id)copyWithZone:(NSZone *)zone{
    Germ *germ = [[Germ alloc]init];
    germ.name = self.name;
    return germ;
}
  1. 怎样使用?
    Germ *germ = [[Germ alloc]init];
    germ.name = @"类型1";
    Germ *germ2 = [germ copy];
    NSLog(@"germ:%@--germ1:%@",germ,germ2);

打印效果:

germ:--germ1:
  • Demo

你可能感兴趣的:(iOS原型模式(拷贝模式))