原型模式-Swift

作者: 夜半敲门话不语 | 来源:发表于2017-03-14 11:07 被阅读6次

    Prototype

    原型模式是通过现有对象的所有属性来复制自身,创建一个新的对象。当类的实例间差异仅是属性值的不同时,这种做法将比手工实例化更加方便。

    Prototype.png

    Example

    protocol ProtoType {
        func clone() -> Self;
    }
    
    class ConcretePrototype: ProtoType {
    
        var value: Float?
        let currency: String
        
        
        required init(currency: String) {
            self.currency = currency
        }
        
        internal func clone() -> Self{
            return type(of: self).init(currency: self.currency)
        }
    
    }
    
    

    Usage

    let prototype = ConcretePrototype(currency: "RMB")
    
    let RMB50 = prototype.clone()
    RMB50.value = 50
    let RMB100 = prototype.clone()
    RMB100.value = 100
    
    

    相关文章

      网友评论

        本文标题:原型模式-Swift

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