首頁  >  文章  >  Java  >  java中抽象工廠模式與工廠方法模式的差異

java中抽象工廠模式與工廠方法模式的差異

王林
王林原創
2019-11-15 16:01:3211465瀏覽

java中抽象工廠模式與工廠方法模式的差異

一、簡單工廠模式

#特點:

1、它是一個具體的類,非介面抽象類別。有一個重要的create()方法,利用if或 switch建立產品並回傳。

2、create()方法通常是靜態的,所以也稱為靜態工廠。

缺點:

1、擴展性差(我想增加一種麵條,除了新增一個麵條產品類,還需要修改工廠類方法)。

2、不同的產品需要不同額外參數的時候 不支援。

二、工廠方法模式

模式描述:

提供一個用來建立物件的介面(工廠介面) ,讓其實作類別(工廠實作類別)決定實例化哪一個類別(產品類別),並且由該實作類別建立對應類別的實例。

模式式要素:

提供一個產品類別的介面。產品類別均要實作這個介面(也可以是abstract類,即抽象產品)。

提供一個工廠類別的介面。工廠類別均要實作這個介面(即抽象工廠)。

由工廠實作類別建立產品類別的實例。工廠實作類別應有一個方法,用來實例化產品類別。

三、抽象工廠模式

模式描述:

為建立一組相關或相互依賴的物件提供一個接口,而且無需指定他們的特定類別。

四、區別

抽象工廠模式是工廠方法模式的升級版本,他用來創建一組相關或相互依賴的物件。

它與工廠方法模式的差異就在於,工廠方法模式針對的是一個產品等級結構;而抽象工廠模式則是針對的多個產品等級結構。

在程式設計中,通常一個產品結構,表現為一個介面或抽象類,也就是說,工廠方法模式提供的所有產品都是衍生自同一個介面或抽象類,而抽象工廠模式所提供的產品則衍生自不同的介面或抽象類別。

在抽象工廠模式中,有一個產品族的概念:所謂的產品族,是指位於不同產品等級結構中功能相關聯的產品組成的家族。抽象工廠模式所提供的一系列產品就組成一個產品族;而工廠方法提供的一系列產品稱為一個等級結構。

推薦教學:Java教學

以上是java中抽象工廠模式與工廠方法模式的差異的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn