Java設計模式 五 之 工廠模式

2021-07-04 07:48:42 字數 1701 閱讀 3158

原始碼均以jdk1.8作為參考

1.定義:

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到子類。

2.解析:

可能乍一看factory設計模式的定義有點暈,但是細想想factory的字面含義,其實也是很好理解的,所謂工廠,就是按照指定的需求生產出一些產品,factory設計模式也不例外,是按照提供給factory的需求說明,然後factory按照需求生產出指定的產品,供呼叫的應用場景使用。

通用類圖:

類**析:

2.1.product(抽象產品類)

定義產品的共同特性,對產品實現類進行通用約束。

2.2.concreteproduct(產品實現類)

產品的具體定義,可以有多個產品類的存在,均需實現product抽象產品類。

2.3.creator(抽象建立類)

即抽象工廠,定義了實現工廠的上層約束。

2.4.concretecreator(實現工廠)

完成產品類的具體建立。

factory設計模式的實現是集中處理某一些可以高度抽象類的例項化過程,當然這個例項化過程也包括例項內部資料的初始化,即使這樣說是不是也對factory還是不太理解呢,那麼接下來現看看factory通用類圖的具體實現。

3.具體應用:

3.1.product(抽象產品類)

public abstract class product 

// .. 抽象方法

public abstract void method2();

}

3.2.concreteproduct(產品實現類)

public class concreteproduct1 extends product 

}public class concreteproduct2 extends product

}

3.3.creator(抽象建立類)

public abstract class creator
3.4.concretecreator(實現工廠)

public class concretecreator extends creator  catch (exception e) 

return (t)product;

}}

這樣是不是很一目了然呢,當需要concreteproduct1或者concreteproduct2中哪個類的例項時,只需要告訴concretecreator要產生哪個類的例項就可以的,concretecreator就可以按照具體的要求產生這個類的例項。工廠方法就是集中了同一類具有共同抽象的類的例項化過程,由此factory進行具體的例項化。這樣便於對類例項化進行管理,同時又遮蔽了具體類的實現細節。

java設計模式五(工廠模式)

工廠模式是將一些具有相同屬性或功能的類通過乙個工廠類進行管理,當需要建立乙個例項時,只需在工廠裡去獲取即可,無需了解每乙個類的具體邏輯。1.對資料庫的操作,如果我們有乙個完善的資料庫工廠,則在編寫 時,就無需關心連線的什麼資料庫。2.我們編寫 連線印表機時,其實就是工廠模式。3.載入,可載入本地或網...

設計模式之工廠模式(五)

前面幾篇,我們已經把簡單工廠 工廠方法模式以及抽象工廠模式一一進行了拆解,一步步讓我們學會了這幾個工廠模式,哦,對了,簡單工廠並不算真正意義上的工廠。我們通過吃披薩的啟發,對建立披薩進行了改造 又發展了遠景,對披薩加盟有了濃厚的興趣,並開了很多加盟店 又對材料進行了嚴格把控,才有了現在的規模。工廠模...

java設計模式之工廠模式

工廠模式是一種經常被使用到的模式,根據工廠模式實現的類可以根據提供的資料生成一組類中某乙個類的例項,通常這一組類有乙個公共的抽象父類或者是介面並且實現了相同的方法,但是這些方法針對不同的資料進行了不同的操作。首先需要定義乙個父類或者介面,該類的子類通過不同的方法實現了父類中的方法。然後需要定義乙個工...