設計模式學習之工廠模式

2021-07-30 07:47:24 字數 1419 閱讀 4332

前言:設計模式不是某個api,是一系列經驗總結後的開發模板。

工廠模式的分類:

工廠方法模式:定義了乙個用於建立方法的介面,讓子類決定例項化哪乙個類。

抽象方法模式:定義一系列相關或者相互依賴的介面,無需指定具體的類。是方法模式的擴充套件。

工廠模式的意義:需要大量建立某類具有相同屬性的物件時,將例項化的任務交給某個類去做,而不是手動new乙個物件。

工廠模式適合的應用場景

1:系統不依賴於產品類的例項被建立和表示的細節

2:系統的產品有至少乙個的產品族

3:同屬於同乙個產品族的產品是設計在一起使用的

3:不同的產品以介面的面貌出現,使系統不依賴於介面實現的細節

參考例項

客戶端要生產衣服,有兩類產品分別是短裙和t恤,原始的方法是,需要某個物件的時候,new乙個新的物件。在工廠模式裡面,建立這個例項的方法與客戶端分離,客戶端只需要提出需求—我要生產一件t恤,然後具體的生產方法交給工廠去做。我們只需要定義乙個抽象的服裝介面,再實現相應的生產某種服裝的方法,然後定義乙個服裝工廠,根據類名生產相應的服裝(根據類名建立物件)。

工廠模式就將客戶端與例項化物件隔離開,進行責任分割。

步驟:

定義服裝介面:

public

inte***ce clothes

根據需求實現相應方法的類:

public

class

skirts

implements

clothes

public

class

tshirt

implements

clothes

定義服裝工廠類,決定例項化物件

public

class clothesfactory catch (instantiationexception | illegalacces***ception | classnotfoundexception e)

return

null;

}}

客戶端實現

只需要建立乙個工廠物件,但是具體的服裝例項,由工廠物件建立。實現責任分離的松耦合

public

class test

}

總結

工廠模式的特點:

1:系統可以在不修改具體工廠角色的情況下引進新的產品,可擴充套件性強

2:客戶端只用提出需求不必關心如何建立,明確了職責

3:更好的理解面向介面程式設計

設計模式學習之工廠模式

工廠模式,factorymethod,定義乙個工廠類的基類,基類中不再去實現具體的產品類的例項,而是將產品類的例項化工作放在其子類中進行,然後由客戶端來決定要使用那一種產品類的例項,工廠模式也要求產品類都具有相同的產品基類,這和簡單工廠模式比較相似。個人理解 工廠模式和簡單模式最大的區別是將產品類的...

設計模式之工廠模式學習

與簡單工廠模式相比,工廠模式為每個類增加了乙個工廠類。每個工廠類返回它所對應的類的物件指標。簡單工廠模式的最大優點 工廠類中包含了必要的邏輯判斷。根據客戶端的選擇條件動態的例項化相關的類。沒有在客戶端實現判斷,也就去除了與客戶端的依賴。簡單工廠模式實現計算類結構圖 工廠模式實現計算類結構圖 工廠模式...

設計模式之工廠模式學習

與簡單工廠模式相比,工廠模式為每個類增加了乙個工廠類。每個工廠類返回它所對應的類的物件指標。簡單工廠模式的最大優點 工廠類中包含了必要的邏輯判斷。根據客戶端的選擇條件動態的例項化相關的類。沒有在客戶端實現判斷,也就去除了與客戶端的依賴。簡單工廠模式實現計算類結構圖 工廠模式實現計算類結構圖 工廠模式...