设计模式-6.原型模式

73 阅读1分钟

一句话总结

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

就是深拷贝实例。

Code

public protocol NSCopying {
    func copy(with zone: NSZone? = nil) -> Any
}

static func main() {
    let resume1 = Resume()
    resume1.name = "link"
    resume1.age = 10

    let resume2 = resume1.copy()
}

class Resume: NSCopying {
    var name = ""
    var age = 0

    func copy(with zone: NSZone? = nil) -> Any {
        let newResume = Resume()
        newResume.name = name
        newResume.age = age
        return newResume
    }
}