建立型設計模式(3) 工廠方法模式

2021-06-16 10:39:54 字數 924 閱讀 8385

動機

建立乙個物件往往需要複雜的過程,所以不適合包含在乙個復合工廠中,當有新的產品時,需要修改這個復合的工廠,不利於擴充套件。

而且,有些物件的建立可以需要用到復合工廠訪問不到的資訊,所以,定義乙個工廠介面,通過實現這個介面來決定例項化那個產品,這就是工廠方法模式,讓類的例項化推遲到子類中進行。

目的

1. 定義乙個介面,讓子類決定例項化哪個產品。

2. 通過通用介面建立物件。

實現

1. 產品介面和具體產品很好理解。

2. 工廠類提供乙個工廠方法,返回乙個產品物件。但是這個工廠方法是抽象的。

3. 具體工廠類實現工廠方法,完成具體產品的建立。

//幾個button類

class button

class winbutton extends button

class macbutton extends button

//它們的工廠類

inte***ce buttonfactory

class winbuttonfactory implements buttonfactory

}class macbuttonfactory implements buttonfactory

}

適用場景

1. 建立物件時有比較多重複的**時,可以考慮使用工廠方法模式執行這些重複的部分。

2. 建立物件需要訪問某些資訊,而這些資訊不應該包含在工廠類,那麼可以讓子類來實現物件的建立。

3. 需要集中管理物件的建立,保持程式的一致性時。

參考:

設計模式 建立型 工廠方法模式

建立性模式有五種 1.工廠模式 簡單工廠模式 經常被用到,不屬於gof23種設計模式 工廠方法模式 抽象工廠模式 2.建造者模式 3.原型模式 4.單例模式 工廠方法 factory method 模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立...

建立型設計模式 工廠方法模式

工廠方法模式解決的是,不像簡單工廠似的,要增加產品必須改工廠類的 實現思路是,1.抽象工廠類 2.抽象產品類 3.具體工廠類 繼承抽象工廠類 4.具體產品類 繼承抽象產品類 5.外界呼叫。1.抽象工廠類 建立抽象工廠類 abstract class factory2.抽象產品類 建立抽象產品類 ab...

設計模式 建立型 工廠方法模式 多個工廠方法模式

多個工廠方法模式,屬於工廠方法模式中的一種。它是一種建立型模式。是對普通簡單工廠模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件.public class gunfactory public igun getgunm4a1 ...