标签:
工厂方法
意图:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。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
标签:
原文地址:http://www.cnblogs.com/faronl/p/4701874.html