設計模式2 工廠方法模式

2021-08-19 16:04:29 字數 1388 閱讀 5283

工廠方法模式:

定義:定義乙個用於建立物件的介面,讓子類決定例項化哪個類。工廠方法使乙個類的例項化延遲到其子類。

類圖:

抽象產品類product負責定義產品的共性,實現對事物最抽象的定義。creator為抽象建立類,也就是抽象工廠,具體如何建立產品類是由具體的實現工廠concretecreator完成的。

通用**:

抽象產品類:

public abstract class product 

//抽象方法

public abstract void method2();

}

具體產品類:

public class concreteproduct1 extends product 

}public class concreteproduct2 extends product

}

抽象工廠類:

public abstract class creator
具體工廠類:

public class concretecreator extends creator  catch (exception e) 

return (t)product;}}

場景類:

public class client 

}

注意事項:

作為一種建立類模式,在任何需要生成複雜物件的地方,都可以使用工廠方法模式。有一點需要注意的地方就是複雜物件適合使用工廠模式,而簡單物件,特別是只需要通過 new 就可以完成建立的物件,無需使用工廠模式。如果使用工廠模式,就需要引入乙個工廠類,會增加系統的複雜度。

工廠模式的擴充套件:

(1)縮小為簡單工廠模式:簡單工廠模式

如果乙個模組僅需要乙個工廠類,沒有必要把他產生出來,直接使用靜態方法就可以了。

2、公升級為多個工廠類

3、替代單例模式

4、延遲初始化

設計模式(2) 工廠方法模式

工廠方法模式 定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使用乙個類的例項化延遲到子類。舉個栗子 我們要生產水果罐頭,我們應該怎麼做呢?首先,我們需要準備好原料。其次我們需要乙個罐頭工廠,往工廠裡運送不同的原料,出來的就是不同的罐頭。原料就是蘋果啊 橘子啊等等的這些類。int...

設計模式2 工廠方法模式

工廠方法模式同樣屬於類的建立型模式又被稱為多型工廠模式 工廠方法模式的意義是定義乙個建立 產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工...

設計模式2 工廠方法模式

定義 定義乙個建立物件的介面,但讓實現這個介面的類來決定例項化哪個類。工廠方法讓類的例項化推遲到子類中進行。注 可能有人覺得定義中說的有點不好懂。下面摘抄的解釋 工廠方法讓子類決定要例項化的類是哪乙個。所謂的 決定 並不是指模式允許子類本身在執行時做決定,而是指在編寫建立者類時,不需要知道實際建立的...