Swift-原型模式

作者: FlyElephant | 来源:发表于2017-05-28 14:34 被阅读25次

    原型模式属于对象的创建模式,通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象.


    原型模式.png

    原型模式创建新对象的过程中是拷贝,具体实现由深拷贝和浅拷贝之分.

    Product定义:
    <pre><code>`class Product {

    func clone() -> AnyObject? {
        return nil
    }
    

    }`</code></pre>

    Book定义:
    <pre><code>`class Book:Product {

    var name:String?
    
    var price:Float = 0.0
    
    override func clone() -> AnyObject? {
        
        let book:Book = Book()
        book.name = self.name
        book.price = self.price
        return book
    }
    

    }`</code></pre>

    测试代码:
    <pre><code>` let book:Book = Book()
    book.name = "从入门到放弃"
    book.price = 25.0

        print("FlyElephant---原始对象:\(book.name!)---\(book.price)")
        let temp:Book = book.clone() as! Book
        print("FlyElephant---拷贝对象:\(temp.name!)---\(temp.price)")`</code></pre>
    
    FlyElephant.png

    相关文章

      网友评论

        本文标题:Swift-原型模式

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