java工廠方法和抽象工廠舉例

2021-07-10 09:45:02 字數 1968 閱讀 7375

1. 概念

工廠方法:一抽象產品類派生出多個具體產品類;一抽象工廠類派生出多個具體工廠類;每個具體工廠類只能建立乙個具體產品類的例項。

即定義乙個建立物件的介面(即抽象工廠類),讓其子類(具體工廠類)決定例項化哪乙個類(具體產品類)。「一對一」的關係。

抽象工廠:多個抽象產品類,派生出多個具體產品類;乙個抽象工廠類,派生出多個具體工廠類;每個具體工廠類可建立多個具體產品類的例項。

即提供乙個建立一系列相關或相互依賴物件的介面,而無需指定他們的具體的類。「一對多」的關係。

2. **

工廠方法:

public

inte***ce product

public

inte***ce creator

public

class concreteproduct1 implements product

}public

class concreteproduct2 implements product }

public

class concretecreator1 implements creator

}public

class concretecreator2 implements creator}

public

class client

}

抽象工廠:

//

定義不同的產品之間的一定具備的標準,用inte***ce實現

//其中的method()方法可看作提取出不同產品的共性,如手機都有類似的功能

inte***ce iproducta

inte***ce iproductb

//實現了產品標準實現的一系列具體產品

//由於已經設計好a1由廠商1生產,故以下輸出**有「廠商x」

class producta1 implements iproducta

} class producta2 implements iproducta

} class productb1 implements iproductb

} class productb2 implements iproductb

} //

每一種牌子的產品生產工廠,即不同的廠商負責自己牌子產品的生產

abstract

class factory1

abstract

class factory2

//具體的工廠用來生產相關的產品

class concretefactory1 extends factory1

public iproductb getproductb1()

} class concretefactoryb extends factory2

public iproductb getproductb2()

} //

測試類

public

class client

}

3. 應用場景

工廠方法:

在以下情況下,適用於工廠方法模式:

(1) 當乙個類不知道它所必須建立的物件的類的時候。

(2) 當乙個類希望由它的子類來指定它所建立的物件的時候。

(3) 當類將建立物件的職責委託給多個幫助子類中的某乙個,並且你希望將哪乙個幫助子類是**者這一資訊區域性化的時候。

抽象工廠:

(1) 乙個系統不應當依賴於產品類例項如何被建立、組合和表達的細節,這對於所有形態的工廠模式都是重要的。

(2) 這個系統有多於乙個的產品族,而系統只消費其中某一產品族。

(3) 同屬於同乙個產品族的產品是在一起使用的,這一約束必須在系統的設計中體現出來。

(4) 系統提供乙個產品類的庫,所有的產品以同樣的介面出現,從而使客戶端不依賴於實現。

4.區別

工廠方法模式針對的是乙個產品等級結構,抽象工廠模式則需要面對對個產品等級結構。

工廠方法和抽象工廠

csdn沒有在移動上布網,最近移動校園網登不上csdn,今天終於能登上了,小草鳥就寫下最近在學的設計模式。工廠估計也差不多是用的最多的了,對於工廠方法和抽象工廠比較容易混,筆者在這裡說下自己的學習的一些理解。工廠模式 產品對於工廠,當然是生產產品的了,當然我們得有產品類,為了擴充套件性良好,先定義乙...

抽象工廠和工廠方法

工廠方法模式 乙個抽象產品類,可以派生出多個具體產品類。乙個抽象工廠類,可以派生出多個具體工廠類。每個具體工廠類只能建立乙個具體產品類的例項。抽象工廠模式 多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。乙個抽象工廠類,可以派生出多個具體工廠類。每個具體工廠類可以建立多個具體產品類的例項。區...

Java 之工廠方法和抽象工廠模式

1.概念 工廠方法 一抽象產品類派生出多個具體產品類 一抽象工廠類派生出多個具體工廠類 每個具體工廠類只能建立乙個具體產品類的例項。即定義乙個建立物件的介面 即抽象工廠類 讓其子類 具體工廠類 決定例項化哪乙個類 具體產品類 一對一 的關係。抽象工廠 多個抽象產品類,派生出多個具體產品類 乙個抽象工...