設計模式(Factory 方法)

來源:互聯網
上載者:User

標籤:

Factory 方法

意圖:

        定義一個用於建立對象的介面,讓子類決定執行個體化哪一個類。Factory Method 使一個類的執行個體化延遲到其子類。

適用性:

        當一個類不知道它所必須建立的對象的類的時候。

        當一個類希望由它的子類來指定它所建立的對象的時候。

        當類將建立對象的職責委託給多個協助子類中的某一個,並且你希望將哪一個協助子類是代理者這一資訊局部化的時候。

原理圖:

代碼實現:

 1 <?php 2 /** 3  * 原廠模式 4  */ 5  6  7  8 /** 9  * 抽象產品10  */11 abstract class food {12     private $_name ;13     14     abstract public function make();15 }16 17 /**18  * 實體產品19  */20 class greens extends food {21     public function make() {22         echo ‘我要做greens‘;23     }24 }25 class bread extends food {26     public function make() {27         echo ‘我要做bread‘;28     }29 }30 31 /**32  * 抽象工廠33  */34 abstract class servant {35     abstract public function createFood();36 }37 38 /**39  * 實體工場40  */41 class greensFactory extends servant{42     public function createFood() {43         return new greens();44     }45 }46 47 class breadFactory extends servant{48     public function createFood () {49         return new bread();50     }51 }

 

參考文獻:

http://www.cnblogs.com/zhangchenliang/p/3700820.html

設計模式(Factory 方法)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.