iOS Developer

Swift-原型模式

2017-05-28  本文已影响25人  FlyElephant

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


原型模式.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
上一篇下一篇

猜你喜欢

热点阅读