定義了乙個建立物件的介面,但由子類決定要例項化的類是哪乙個。工廠方法讓類把例項化推遲到子類。
將產品的」實現「從」使用「中解耦
1.當乙個類不知道它所必須建立的物件的類的時候
2.當乙個類希望由它的子類來指定它所建立的物件的時候
3.當想將建立物件的職責委託給多個幫助子類中的某乙個,並且希望將哪乙個幫助子類是**者這一資訊區域性化的時候
product定義產品介面
->concreteproduct實現product的介面,實現具體的產品
creator宣告factory method用於返回concreteproduct
->concretecreator實現creator中定義的factory method,返回乙個concreteproduct的例項
product
abstract
class
beverage
concreteproduct
public
class
teaextends
beverage
}public
class
coffee
extends
beverage
}
creator
abstract
class
beveragecreator
concretecreator
public
class
teacreator
extends
beveragecreator
}public
class
coffeecreator
extends
beveragecreator
}
demo
public
class
demo
}
result
a cup of tea
a cup of coffee
模式分類歸屬 ↩︎
意圖:描述該模式的作用,以及該模式的定義 ↩︎
動機:給出了問題以及如何解決這個問題的具體場景 ↩︎
適用性:描述模式可以被應用在什麼場合 ↩︎
結構:提供了圖示,顯示出參與此模式的類之間的關係 ↩︎
參與者:描述在此設計中所涉及到的類和物件在模式中的責任和角色 ↩︎
協作 :告訴參與者如何在此模式中合作 ↩︎
結果:描述採用此模式之後可能產生的效果,好的與不好的 ↩︎
實現:提供了在實現該模式時需要使用的技巧,以及應該小心面對的問題 ↩︎
範例**:提供**的片段 ↩︎
已知應用:用來描述已經在真實系統中發現的模式例子 ↩︎
相關模式:描述了此模式和其他模式之間的關係 ↩︎
工廠模式(Factory Method
意圖 工廠方法模式 factory method pattern 工廠方法模式又稱為 工廠模式 也叫虛擬構造器 virtual constructor 模式或者 多型模式 屬於類的建立型模式。在工廠方法模式中,父類負責定義建立物件 的公共介面,而子類則負責生成具體的物件,這樣做的目的是將類的例項化操...
工廠方法(Factory Method)
為建立的物件定義乙個抽象類,雖然該抽象類負責建立物件,但由它的實現類決定哪個類需要例項化。即不在由單個工廠類決定應該例項化哪個子類。工廠類會將這決定推遲到每個子類中完成。product page 定義乙個由工廠方法例項化的物件介面。concreteproduct skillspage,educati...
1 工廠模式(Factory Method
一 準備工作 1.建立乙個要生產物件的乙個介面 這類定義乙個水果fruit介面 以及定義乙個方法eat package com.yh.createrpattern.factory author yh project designpattern description 定義乙個水果介面 vesion ...