Factory Method (Factory 方法模式、虛構造子模式、多態原廠模式):
定義建立對象的介面,並由衍生類別決定那一個類來建立執行個體。即Factory 方法將建立對象的責任委託(延遲)到了衍生類別建立。
適用情況:
1.當一個類無法事Crowdsourced Security Testing道她所必須建立的對象的類的時候。
2.當一個類要讓其衍生類別決定構建對象時。
3.當類將建立對象的職責委託給多個協助他的衍生類別之一,同時你希望通過所委託的衍生類別來集中管理對象建立邏輯時。
由此可見,此模式將對象和對象建立方法分離,特別是當對象包含複雜的建立邏輯時,這種分離使得建立對象的邏輯可以移出該對象並封裝在一個工廠類中。這樣通過重新定義一個抽象的介面(抽象類別和對象介面),就可以管理封裝了不同建立邏輯的具體工廠。只要一個應用系統調用介面提供的Factory 方法,就可以讓衍生類別構建需要的產品對象,而無需知道這些對象的類。
模式結構:
1.抽象產品(CProduct):定義Factory 方法所構建產品對象的介面。是具體產品類的公用基類或共有介面。
2.具體產品(CConcreteProduct):是實現抽象產品對象的介面。也是Factory 方法最終建立的產品執行個體。
3.抽象工廠(CFactory):聲明Factory 方法,該方法返回特定產品的對象。(模式核心)通過調用抽象工廠的一個Factory 方法建立了一個產品對象。
4.具體工廠(CConcreteFactory):是實現抽象工廠介面的具體類,即通過覆蓋Factory的Factory 方法並返回具體產品的執行個體。
uml圖:回頭再上(不好意思)。還沒有畫好。
代碼模板:回頭上。呵呵
//由於個人打字速度畫圖的速度,所以,大家看到的只是文字。回頭有時間在將圖附上。至於模板代碼本人回頭將以c++源碼的方式打包奉上,正在整理之中,具體時間由於工作比較忙,所以不確定,但是鄙人會努力的。呵呵