GoF 工廠方法 再理解

2021-07-29 14:05:53 字數 1493 閱讀 7165

在drp時運用到了工廠方法設計模式,通過簡單的小例子,對其也有了更清楚的了解。

之前對於工廠方法的理解,只是侷限於定義,對於**如何操作很難懂。這次在drp上老師一點點講述關於簡單工廠與工廠方法的使用時,才漸漸理清楚了思路。

工廠方法是將建立細節隱藏,從而使產品改變不會對客戶造成影響。如下圖:

}一般情況下,我們使用具體的電視,會通過介面取例項化具體電視,從而當我們在其他地方改變時造成改動,違背了ocp原則(開放封閉原則)。而這時候使用工廠的原因,在於,工廠可以實現隱藏電視的集體建立,將電視的具體建立交由工廠,當我們需要某種電視時,只需要交給某種電視的建立工廠去建立即可。下面是工廠類

//採用工廠將產品建立細節隱藏

//這樣產品發生改變不會對客戶造成影響

public inte***ce tvfactory

public class tvfactorychanghong implements tvfactory 

}

public class tvfacotryhaixin implements tvfactory 

}

public class tvfactoryhaier implements tvfactory 

}

這時候,在其它地方,我們使用時,就僅需要呼叫工廠去建立具體的電視工廠即可。例如:

public class client 

}

當我們仍舊需要其他電視型別的時候,只需要田間乙個相應的具體電視工廠類,以及乙個具體的電視類即可,這樣就實現了對修改封閉,對擴充套件開放。

但是工廠方法仍舊有不足,工廠方法只是針對單一系列產品實現開放原則,但是對於不同系列的產品仍舊違背這一原則,所以,有了後來的抽象工廠模式。請等下次分享!

GoF23 工廠模式之工廠方法

模擬奧迪車和比亞迪車的生產銷售過程。為了方便展示,未使用標準注釋 汽車介面,定義汽車的功能 public inte ce car 奧迪車 public class audi implements car 比亞迪車 public class bydimplements car 汽車工廠介面 publi...

gof 抽象工廠 工廠方法 原型和Builder

一 定義 抽象工廠 有乙個抽象的類。類中有多個介面來建立不同的物件。工廠方法 有乙個類。類中有乙個介面來建立物件。原型 類中有乙個clone介面來深度或者 半深淺 轉殖自身的物件。builder 類中有多個介面來操作各種複雜的步驟。還有乙個介面用來或者通過各個步驟操作的組合而建立的物件。二 部分應用...

GOF 設計模式 工廠方法模式 筆記

意圖 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factorymethod 使乙個類的例項化延遲到其子類。結構 在以下情況使用 工廠方法本身並不生產物件,它將生產的物件延遲到了子類工廠實現。食物 food public class foodnoodle public class nood...