工廠模式學習筆記(詳細)

2021-10-23 10:01:45 字數 2812 閱讀 6782

工廠模式是一種建立型模式,它將建立物件邏輯封裝起來,不會暴露給使用者,使用者只需要呼叫方法便可以獲得完整的物件,符合迪公尺特法則

1.簡單工廠模式

簡單工廠模式由兩個部分組成

工廠類可以有乙個生成產品的方法,通過傳參來判斷生產哪個產品

用乙個造車工廠做為例子

public

inte***ce

car

汽車介面有乙個make()方法

public

class

bmwcar

implements

car@override

public

void

make()

}

實現汽車介面,實現make()方法

public

class

porschecar

implements

car@override

public

void

make()

}

實現汽車介面,實現make()方法

public

class

ca***ctoryif(

"porschecar"

.equals

(type)

)return null;

}}

通過傳進來的type引數來判斷生成哪個物件

public

class

run}

2.工廠方法模式工廠方法模式是在簡單工廠模式上增加了抽象工廠類,抽象工廠有乙個生成產品的方法,當新增乙個產品時就建立乙個工廠實現抽象工廠,簡單來說,工廠方法模式就是乙個工廠對應乙個產品,通過工廠介面進行解耦

修改剛剛的工廠類

public

inte***ce

abstractfactory

public

class

bmwca***ctory

implements

abstractfactory

}

public

class

porcheca***ctory

implements

abstractfactory

}

public

class

run2

}

2.抽象工廠模式

抽象工廠模式,是在工廠方法模式上擴充套件,在乙個工廠中支援製造多個產品

在剛剛的基礎上新增乙個產品,這裡我們假設寶馬和法拉利產商也製造飛機

public

inte***ce

plane

public

class

bmwplane

implements

plane

}

public

class

porscheplane

implements

plane

}

下面修改工廠相關的類

這裡先講一下產品等級結構和產品族的概念

然後講一下三個工廠模式的區別

簡單工廠模式:只有乙個工廠類,通過傳引數來獲得決定獲取哪個物件

工廠方法模式:在簡單工廠模式上增加乙個工廠介面,由這個工廠介面派生出工廠,乙個工廠介面對應乙個產品介面,乙個工廠對應乙個產品

抽象工廠模式:在工廠方法模式上加上了產品族的概念,在新增另一種類的產品時(新增產品介面),與工廠方法的區別就在於,抽象工廠是在工廠介面裡新加乙個對應的方法,形成產品族,而不是新增乙個工廠介面

工廠模式 學習筆記

首先說說簡單工廠模式,我用現實中的汽車工廠舉例子,首先有個汽車類的介面叫做car,裡面有個開車的方法叫做drive 然後有個吉利車的類叫做jili,實現了car的介面,還有個奇瑞車的類叫做qirui,也實現了car的介面 因為都是車嘛,當然能開了 inte ce car class jili imp...

設計模式 工廠模式(學習筆記)

披薩專案 要方便專案的擴充套件,要便於維護 要能執行時擴充套件。披薩族設計 不足之處 披薩只能prepare bake cut box操作,增加新功能需要更改原始抽象類,程式擴充套件性低。簡單工廠模式的設計方案 定義乙個例項化披薩物件的類,封裝建立物件的 將例項部分與抽象超類分隔開,放在工廠裡提高擴...

簡單工廠模式學習筆記

最近開始看點設計模式,由於我這人腦袋有點笨所以簡單工廠模式也是看了幾遍才慢慢領悟點意思出來。所以在這裡記錄下來好日後翻閱。簡單工廠模式又叫做靜態工廠方法 staticfactory method 模式,簡單的來說就是利用乙個工廠類來操作處理返回例項化物件。這個工廠就像乙個小工廠一樣來生產會產品。下面...