原型模式Prototype用途
1. 解決了每次創(chuàng)建新的對象胰默,都需要alloc init,這樣就造成了代碼要直接訪問具體的類竟稳,也就增加了代碼的耦合度贤壁。
2. 避免創(chuàng)建工廠類的子類(例如抽象工廠模式)
3. 通過copy能夠保存對象當(dāng)時的狀態(tài)
原型模式Prototype使用場景
1. 需要創(chuàng)建的對象不依賴于具體的類型以及創(chuàng)建方式
2. 具體實例化的對象類型是在運行期決定的
3. 不同類型之間的差異緊緊是狀態(tài)的組合
4. 類型創(chuàng)建不容易,例如類型有復(fù)雜的嵌套
原型模式Prototype實現(xiàn)原理
- Swift/Objective C并不支持抽象基或者抽象方法拒秘。但是可以使用協(xié)議類似定義一個抽象的“基類”萝勤,定義通用的屬性,方法序六,以及復(fù)制方法跃须。
- 具體的類負(fù)責(zé)實現(xiàn)復(fù)制方法,以及公用的方法球榆。
- 通過抽象基類的接口創(chuàng)建對象
原型模式與iOS中深淺拷貝
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者