工廠模式(更新之前的工廠模式)

2021-08-02 03:26:28 字數 1887 閱讀 6765

工廠模式,適用於建立複雜的物件的地方,若可直接用new完成物件建立則可無需使用工廠模式

工廠模式的主要組成:

抽象產品類:

package ban.com;

public

abstract

class product

具體產品類a:

package ban.com;

public

class

concreteproductcup

extends

product

}

具體產品類b:

package ban.com;

public

class

concreteproductspoon

extends

product

}

抽象工廠類:

package ban.com;

public

abstract

class factory

具體工廠類:

package ban.com;

public

class

concretefactory

extends

factory

}

客戶類:

package ban.com;

public

class client

}

執行列印的資料為spoon,很標準的工廠模式,要是像建立cup物件,可以直接在建立乙個工廠實現類生成cup物件。

package ban.com;

public

class

concretefactory

extends

factory

}

工廠模式主要分為四個模組:

1、抽象工廠:工廠模式的核心

2、抽象產品:用於工廠方法建立的父類

3、具體工廠類的實現:具體的建立邏輯

4、具體產品類的實現:產品的特有邏輯

這樣看上去,需要那個就建立那個工廠的實現類,但是**比較多,也不簡潔,這樣我們可以根據反射的方式簡潔的來生產具體產品物件,這裡會用到泛型的部分(以後會更新泛型部分的知識)

更改抽象工廠:

package ban.com;

public

abstract

class factory

t為繼承product的泛型,返回值必須是product的子類,傳入的clz即為類物件

具體工廠實現:

package ban.com;

public

class

concretefactory

extends

factory catch (instantiationexception | illegalacces***ception

| classnotfoundexception e)

return (t) product;//需是product的子類

}}

這樣就可以保證直接傳入所需類的名稱就可以獲取相應的物件,更改client:

package ban.com;

public

class client

}

列印結果就是:cup spoon

這樣的好處是可以比較簡潔、動態的生成所需要的物件,之前的一種方式成為多工廠方式,都可以使用

工廠模式(更新中)

package ray 餓漢式單例 優點 執行緒安全,缺點 載入類的時候如果建立物件很費時,類的載入會很慢很慢 1 封裝構造器,封死new操作 2 宣告私有的靜態屬性,指向本類物件的乙個引用,並同時建立唯一物件,並讓靜態引用指向這個唯一物件 3 宣告公共的靜態方法,用以獲取唯一物件 懶漢式單例 優點...

簡單工廠模式,工廠模式,抽象工廠模式

三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...

簡單工廠模式 工廠模式 抽象工廠模式

簡單工廠模式 簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關類,對於客戶端來說,去除了與具體產品的依賴。但增加功能時,需增加 case 邏輯判斷分支條件,修改了原有的類,我們不但對擴充套件開發了,對修改也開放了,違背了開放 封閉原則。工廠方法模式,定義了乙...