標籤:
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 方法)