美文网首页程序员
iOS原型模式(拷贝模式)

iOS原型模式(拷贝模式)

作者: 卢二牛 | 来源:发表于2018-02-11 14:18 被阅读0次

    原型模式:是一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例.被复制的实例就是我们所称的原型,这个原型是可定制的. 原型模式多用于创建复杂的或者耗时的实例, 因为这种情况下,复制一个已经存在的实例可以使程序运行更高效,或者创建值相等,只是命名不一样的同类数据.
    原型模式实际意义上来说是拷贝、而且一般情况下都是深拷贝。在 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:<Germ: 0x6040000166d0>--germ1:<Germ: 0x604000016780>
    

    相关文章

      网友评论

        本文标题:iOS原型模式(拷贝模式)

        本文链接:https://www.haomeiwen.com/subject/lzmktftx.html