Prototype Pattern(原型模式)
生活随笔
收集整理的這篇文章主要介紹了
Prototype Pattern(原型模式)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
意圖
用原型實例指定創建對象的種類,并且通過拷貝這些原型創建新的對象。適用性
? 當要實例化的類是在運行時刻指定時,例如,通過動態裝載;? 為了避免創建一個與產品類層次平行的工廠類層次時;
? 當一個類的實例只能有幾個不同狀態組合中的一種時。建立相應數目的原型并克隆它們可能比每次用合適的狀態手工實例化該類更方便一些。
結構
?參與者:
? Prototype(原型)?
— 聲明一個克隆自身的接口。
? ConcretePrototype(具體的原型)?
— 實現一個克隆自身的操作。?
? Client(場景)?
— 讓一個原型克隆自身從而創建一個新的對象。?
例子
阿諾斯瓦辛格主演的《第六日》2000上映。主角叫亞當,來之圣經:上帝在第六日創造了亞當。在不遠的將來,牛、魚甚至寵物都可以任意克隆,但克隆人類是非法的。但有一天當亞當-吉布森回到家,卻發現一個克隆人取代了自己。他被趕出了家門,更遭的是,陰謀的制造者為了掩蓋真相,派出殺手追殺亞當滅口。為了逃生,同時也為了重新贏得自己的一切,亞當同神秘的幕后策劃者展開了機智的戰斗。
?
優缺點
? 優點:性能優良。原型模式是在內存二進制流的拷貝,要比直接new一個對象性能好很多,特別是要在一個循環體內產生大量的對象時,原型模式可以更好地體現其優點。
? 缺點:
逃避構造函數的約束。這既是它的優點也是缺點,直接在內存中拷貝,構造函數是不會執行的。優點就是減少了約束,缺點也是減少了約束,需要大家在實際應用時考慮。
總結
以上是生活随笔為你收集整理的Prototype Pattern(原型模式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式总结之Composite Pat
- 下一篇: 疑难杂症之复位重启