目錄
1.原型模式(prototype)
1.動機
2.定義
3.結構圖
4.模式的組成
2.例項
3.要點總結
4.參考
使用原型例項指定建立物件的種類,然後通過拷貝這些原型來建立新的物件。——《模式設計》gof
原型類(prototype):原型類,宣告乙個clone自身的介面;
具體原型類(concreteprototype):實現乙個clone自身的操作。
在原型模式中,prototype通常提供乙個包含clone方法的介面,具體的原型concreteprototype使用clone方法完成物件的建立。
原型模型本身用的比較少,以後遇到了再寫吧
優點:原型模式向客戶隱藏了建立新例項的複雜性
原型模式允許動態增加或較少產品類。
原型模式簡化了例項的建立結構,工廠方法模式需要有乙個與產品類等級結構相同的等級結構,而原型模式不需要這樣。
產品類不需要事先確定產品的等級結構,因為原型模式適用於任何的等級結構
缺點:資源優化場景:類初始化需要消化非常多的資源,這個資源包括資料、硬體資源等。
效能和安全要求的場景:通過new產生乙個物件需要非常繁瑣的資料準備或訪問許可權,則可以使用原型模式。
乙個物件多個修改者的場景:乙個物件需要提供給其他物件訪問,而且各個呼叫者可能都需要修改其值時,可以考慮使用原型模式拷貝多個物件供呼叫者使用。
在實際專案中,原型模式很少單獨出現,一般是和工廠方法模式一起出現,通過clone的方法建立乙個物件,然後由工廠方法提供給呼叫者。
李建忠設計模式(一)
目錄 1.軟體設計的目標 2.物件導向設計原則 1.重新認識物件導向 2.物件導向設計原則 1.依賴倒置原則 dip 2.開放封閉原則 ocp 3.單一職責原則 srp 4.liskov替換原則 lsp 5.介面隔離原則 isp 6.有限使用物件組合,而不是類繼承 7.封裝變化點 8.針對介面程式設...
李建忠設計模式 構建器模式
目錄 1.構建器模式 1.動機 2.模式定義 3.結構圖 4.模式的組成 2.例項 1.描述 2.3.要點總結 4.實現要點 5.參考 將乙個複雜物件的構建與表示相分離,使得同樣的構建過程 穩定 可以建立不同的表示 變化 1 抽象建造者角色 builder 為建立乙個product物件的各個部件指定...
李建忠設計模式 抽象工廠
提供乙個介面,讓該介面負責建立一系列 相關或者相互依賴的物件 無需指定它們具體的類。設計模式 gof 抽象產品類角色 abstractproduct 為抽象工廠中相互依賴的每種產品定義抽象介面物件,也可以這樣說,有幾種產品,就要宣告幾個抽象角色,每乙個抽象產品角色和一種具體的產品相匹配。具體產品類 ...