php设计模式 — 工厂方法模式(多态性工厂模式) (虚拟构造子模式)
2014-09-05 18:32
393 查看
概念介绍:
工厂方法模式: 在学习工厂方法模式之前请首先阅读简单工厂模式工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中.
工厂方法模式是简单工厂模式的进一步抽象和推广
工厂方法模式的几个需要的对象:
1、抽象工厂
2、具体工厂:实现抽象工厂接口列出的方法,并且每个工厂对应各自的产品
3、抽象产品
4、具体产品
简单工厂模式里面的果园的例子,可以改写成工厂方法模式 , 大家可以自己实验。
案例图:
代码实例:
<?php //此实例是根据女娲造人写的 //首先定义一个全局的工厂接口 //由阴绳 阳绳来继承 都要实现举绳子这个方法 interface nvwaRope{ public function liftRope($name); } //定义阴绳 来继承 nvwaRope class yinRope implements nvwaRope{ public function liftRope($name){ return new boy($name); } } //定义阳绳 class yangRope implements nvwaRope{ public function liftRope($name){ return new girl($name); } } //定义一个人的抽象接口 interface people{ public function eat(); public function getName(); } abstract class abstractPeople implements people{ private $name; public function __construct($name){ $this->name = $name; } public function eat(){ echo $this->name . " eat"; } public function getName(){ echo $this->name; return $this->name; } //检查是否有胸 public function checkChest(){ return $this->haveChest; } } class boy extends abstractPeople{ public $haveChest = false; //男孩没有胸 } class girl extends abstractPeople{ public $haveChest = true; //女孩有胸 } //使用方式 //首先获取工厂的实例 也就是阴绳或者阳绳的实例 $yinRope = new yinRope(); $people = $yinRope->liftRope("张三"); echo $people->eat(); echo $people->getName(); var_dump($people->checkChest());
相关文章推荐
- php常用设计模式(策略模式/单例模式/工厂模式)
- 设计模式php实例:工厂模式
- 【设计模式】工厂模式(静态工厂模式、工厂方法模式、抽象工厂模式)
- PHP设计模式之工厂方法模式(Factory Method)
- PHP 设计模式 单例模式 工厂模式 注册模式
- 设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
- PHP设计模式笔记:使用PHP实现工厂模式
- php设计模式 — 简单工厂模式(静态工厂方法模式)
- PHP设计模式-工厂系列(二)-工厂方法模式
- 设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
- PHP生成对象之设计模式—工厂方法模式
- 设计模式第二篇 工厂模式(2) 工厂方法模式 factory method
- 最常用的设计模式----工厂模式家族(简单工厂模式, 工厂方法模式, 抽象工厂模式)
- 设计模式之工厂方法模式(php)
- 设计模式-使用php实现工厂方法模式
- PHP设计模式---工厂模式
- PHP设计模式-工厂系列(二)-工厂方法模式
- java设计模式———工厂模式(工厂方法模式)
- php设计模式(1)-工厂模式
- php实现设计模式之 工厂方法模式