工廠方法模式

2021-07-11 06:11:25 字數 767 閱讀 3989

ocp(開閉原則,open - closed principle):乙個軟體的實體應當對擴充套件開放,對修改關閉。對於乙個已有的軟體,如果需要擴充套件,應當在不需修改已有**的基礎上進行

dip(依賴倒轉原則,dependence inversion principle):要針對介面程式設計,不要針對實現程式設計。對不同層次的程式設計,高層次暴露給低層次的應當只是介面。而不是它的具體類

lod(迪公尺特法則,law of demeter):只與你直接的朋友通訊,而避免和陌生人通訊

注:類(或模組)之間的通訊越少,耦合度越低,從而便有利於對軟體的巨集觀管理

工廠模式的意義

定義乙個建立產品物件的工程介面,將實際建立工作推遲到子類當中,核心工廠類不在負責產品的建立,這樣核心類成為乙個抽象角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角色的情況下引進新的產品

涉及到的角色

抽象工廠角色:是工廠方法模式的核心,與應用程式無關,任何在模式中建立的物件的工廠類必須實現這個介面

抽象產品角色:工廠方法模式所建立的物件的超型別,也就是產品物件的共同父類或共同擁有的介面

具體產品角色:這個角色實現抽象產品角色所定義的介面

簡單工廠模式與工廠方法模式

簡單工廠模式是用來例項化目標類的靜態類,但是不滿足 ocp

工廠方法模式克服簡單工廠模式的缺點(主要是滿足ocp)而設計出來

工廠方法模式 工廠方法模式

工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...

工廠方法模式 工廠方法模式 二

工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...

工廠方法模式(一) 簡單工廠方法模式

ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...