Head First Design Pattern 讀書筆記(4) Factory Pattern 工廠模式
##Factory Pattern 類圖
##定義編程
- 工廠模式:工廠模式嚴格意義上不算是設計模式,而是一種編程習慣,將建立某一類「產品」的代碼封裝起來,達到鬆耦合的目的。
- 工廠方法模式:定義一個建立對象的接口,可是由子類本身決定建立邏輯。工廠方法讓類把實例化延遲到子類。
- 抽象工廠模式:提供一個接口,用於建立相關或依賴對象的家族,而不須要明確制定具體類。
##幾個OO的原測設計模式
- 依賴倒置原測(Dependency Inversion Principle):要依賴於抽象,而不是依賴於具體實現。--》相似與面向接口編程,無論是高層仍是底層模塊,都應該依賴於抽象。
依賴倒置在編碼中的具體實踐:
- 變量不能夠持有具體的類引用 --》如使用工廠的方式代替new方式建立對象。
- 不要讓類派生自具體類。
- 不要覆蓋基類中已實現的方法。
##關於工廠模式編碼
- 簡單工廠與工廠方法的區別:簡單工廠僅封裝了產品建立代碼,若是新增了產品,須要修改工廠類的代碼;工廠方法將建立產品的邏輯延遲到子類中去實現,因此能夠不修改原有代發動態地拓展新產品。
- 工廠方法與抽象工廠的區別:抽象工廠將產品劃分爲多個「產品家族」,每個「族」的產品在一個具體的工廠類中生產;而工廠方法經過繼承父類,重寫建立邏輯產生特定產品,生產的產品沒有類別等級的概念,所有屬於統一類產品。
- 抽象工廠的具體工廠類建立產品的代碼是很難拓展,若是要在「產品族」中增長新的產品,須要修改工廠類的建立代碼。