簡單工廠模式

2021-09-10 18:54:21 字數 1475 閱讀 3378

概念:定義乙個具體的工廠類來建立其他類的例項物件,所有的例項物件都有相同的父類。

簡單工廠模( 靜態工廠模式 )式在設計模式中的定位:類的建立型模式 / 物件例項化的模式,建立型模式用於解耦物件的例項化過程。

幹什麼:定義乙個類來建立其他類的例項。

作用:解耦。向外界提供工廠類,由工廠類建立需要的具體例項,避免了類與類直接發生關係,類 - 工廠類 - 類,以工廠類作為乙個中間媒介,使類與類 松耦合 。

簡單工廠模式核心知識點:

工廠類(核心)

簡單工廠模式的核心,負責實現建立所有例項的內部邏輯。

2.抽象(product)角色

簡單工廠模式所建立所有物件的父類,它負責描述所有例項的共有的公共介面。

3.具體產品角色

簡單工廠模式所建立的具體例項物件

//抽象父類

public inte***ce furit

//具體產品類

@override

public void ******furit()

}public class banana implements furit

}//工廠類

public class furitfactory else if("banana".equalsignorecase(classname))

return null;

*///使用外界環境傳遞的產品類的全限定名,通過反射建立產品的例項物件。

class<?> beanclass = class.forname(classname);//會初始化靜態**塊

return (furit)beanclass.newinstance(); }}

//客戶端呼叫

public class factorymain

}

工廠類根據外部條件建立需要的例項物件:

使用if..else 判斷,返回例項物件。這種方式在產品類過多的情況下會比較繁瑣。

2. 外界傳遞需要例項化的物件的全限定名,通過反射建立例項物件。

class<?>

beanclass

= class.

forname

(classname

);//會初始化靜態**塊

return

(furit)

beanclass

.newinstance();

優點:解耦,改善物件耦合度過高的情況。

使類與類沒有直接發生接觸,通過工廠類作為媒介,在修改類檔案時,只需要修改工廠類中的邏輯,不需要需改其他地方。

缺點:

簡單工廠模式的缺點也體現在工廠類,由於所有的例項建立邏輯都集中在工廠類。所以 「高內聚」 方面做的並不好。當系統的具體產品不斷增多,可能需要修改工廠類,他的擴充套件性並不好。

注意:

這個模式的核心是工廠類,它包含必要的判斷邏輯,根據外界給的資訊,決定應該建立那個具體例項物件。

工廠模式 簡單工廠

簡單工廠其實並不是乙個設計模式,反而比較像一種程式設計習慣。我個人的這樣總結簡單工廠 建立乙個類,封裝建立物件的 故事 現在我要開一家披薩店,叫bbk 必敗客 披薩,賣很多種披薩 芝士披薩 榴蓮披薩等等,我有乙個orderpizza string type 方法,根據客戶傳來的type來提供不同的披...

工廠模式 簡單工廠

工廠 處理建立物件的細節。目的 將例項化具體類的 從應用中抽離,或者封裝起來,可以避免干擾應用的其他部分。簡單工廠 簡單工廠其實不是乙個設計模式,反而像一種程式設計習慣。產品實現 desc 產品a public inte ce a class a1 implements a override pub...

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

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