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