4 工廠模式

2021-09-24 17:40:11 字數 713 閱讀 4595

當使用「new」時,是在例項化乙個具體類,用的是實現不是介面。

爭對介面程式設計,可以隔離掉以後系統可能發生的一大堆改變。

工廠(factory)處理建立物件的細節。並將這樣的行為封裝在子類中。(通過讓子類決定該建立的物件是什麼,來達到物件建立的過程封裝的目的)。工廠方法讓類把例項化推遲到子類。

靜態方法:不需要使用建立物件的方法來例項化物件。缺點:不能通過繼承來改變建立方法的行為。

當直接例項化乙個物件,就是在依賴它的具體類。

依賴倒置原則:要依賴抽象,不要依賴具體類。(不能讓高層元件(由其他低層元件定義其行為的類)依賴底層元件),要遵循依賴倒置原則,工廠方法是很好的辦法。

如果使用new,就會持有具體類的引用。

違反依賴倒置原則:

變數不可以持有具體類的引用。

不要讓類派生自具體類。

不要覆蓋基類中已實現的方法。

工廠方法:

abstract person factorymethod(string type)

工廠方法是抽象的,所以依賴子類來處理物件的建立。

工廠方法必須返回乙個產品,要建立的產品。超類中的方法,通常用到工廠方法返回值。

工廠方法將客戶和實際建立具體產品的**分割開來。

工廠方法可能需要引數來指定具體的產品。

工廠方法通過繼承實現,實現工廠方法。抽象工廠通過組合實現。

在spring中比較常見。

工廠模式(工廠模式4)

工廠模式 工廠模式 相對於簡單工廠模式,我們要再建乙個工廠介面,對於其他要實現的的類都實現這個介面,建立乙個實現類的工廠 public class audica ctory implements ca ctory 通過這個實現類工廠來建立我們要的實現類 新增工廠實現類,方便新增新的類,如果要建立乙個...

4 工廠模式

head first design patterns master src headfirst designpatterns factory 案例 新建披薩類 將變化的地方進行封裝。簡單工廠不是乙個 真正的 模式,更像是一種程式設計習慣。所有工廠模式都用來封裝物件的建立。工廠方法模式通過讓子類決定該...

4 工廠模式

舉例 製作不同口味的披薩 榴蓮 火腿兩種口味 不同口味的披薩製作的過程是不一樣的。product 抽象產品的生產過程 pizza類 concreteproduct 繼承product,實現了製作過程 hampizza durianpizza factory 返回客戶購買的披薩 定義披薩建立過程 pu...