為建立的物件定義乙個抽象類,雖然該抽象類負責建立物件,但由它的實現類決定哪個類需要例項化。即不在由單個工廠類決定應該例項化哪個子類。工廠類會將這決定推遲到每個子類中完成。
product(page)
定義乙個由工廠方法例項化的物件介面。
concreteproduct
(skillspage, educationpage, experiencepage
)product
介面的實現類
creator
(document
)宣告工廠方法,返回
product
型別。creator
也可以例項化並返回乙個預設
product
物件。concreatecreator(report, resume)
過載工廠方法返回乙個
concreteproduct
物件例項。
**:creator
:package pattern;
public abstract class document
product
:package pattern;
public inte***ce page
concreteproduct
:package pattern;
public class skillspage implements page
}concretecreator
:package pattern;
public class resume extends document
}client
:import pattern.*;
public class client
}何時使用工廠方法:
1 類無法預計出必須建立哪個類的物件;
2 類要使用其子類指定所要建立的物件。
creator
有幾種不同的形式:
1 基類是抽象類;
2 基類包含預設工廠方法,並且只有當預設方法不夠用時,才需要派生子類;
3 傳遞給
creator
的引數通知要返回哪些
product
類。
設計模式之工廠方法(Factory Method)
在軟體開發過程中,有很多人抱怨著需求的變化,是需求沒有做好麼?不是的,其實需求變化在軟體開發中是不可避免的。做人也是一樣,出了問題要先從自己這邊找原因,然後想辦法解決。我們身為程式設計師,向使用者和需求分析師們抱怨 其實,任何一種抱怨都是沒有意義的 是沒有意義的。究竟怎樣解決這個問題呢?我身邊很多人...
簡單工廠方法,工廠方法,抽象工廠方法
以大話設計模式計算器為例 簡單工廠方法是由具體執行功能類,工廠類,客戶端構成,工廠類有case語句,負責建立不同的類,客戶端呼叫工廠類裡面的工廠方法,工廠類的工廠方法根據客戶端傳進去的引數new相應的類的物件返回給客戶端,客戶端得到返回的物件用該物件初始化該物件的成員變數最後呼叫該物件的方法執行計算...
工廠方法模式 工廠方法模式
工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...