1.Factory Method (Factory 方法模式、虛構造子模式、多態原廠模式)

來源:互聯網
上載者:User

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++源碼的方式打包奉上,正在整理之中,具體時間由於工作比較忙,所以不確定,但是鄙人會努力的。呵呵

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.