您好,欢迎访问一九零五行业门户网

PHP设计模式——建造者模式_PHP教程

php设计模式——建造者模式  
建造者模式也称生成器模式,核心思想是将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。
例如:汽车,他的发动机引擎有好多品牌,轮胎也有各种材质,内饰更是千奇百怪;鸟,他的头、翅膀以及脚有各种颜色和形状,在创建这种复杂对象的时候,我们建议使用建造者模式。
类图:
建造者模式一般认为有四个角色:
1.产品角色,产品角色定义自身的组成属性
2.抽象建造者,抽象建造者定义了产品的创建过程以及如何返回一个产品
3.具体建造者,具体建造者实现了抽象建造者创建产品过程的方法,给产品的具体属性进行赋值定义
4.指挥者,指挥者负责与调用客户端交互,决定创建什么样的产品
代码:
_head}; echo 翅膀的颜色:{$this->_wing}; echo 脚的颜色:{$this->_foot}; }}/**抽象鸟的建造者(生成器) * class birdbuilder */abstract class birdbuilder{ protected $_bird; function __construct() { $this->_bird=new bird(); } abstract function buildhead(); abstract function buildwing(); abstract function buildfoot(); abstract function getbird();}/**具体鸟的建造者(生成器) 蓝鸟 * class bluebird */class bluebird extends birdbuilder{ function buildhead() { // todo: implement builderhead() method. $this->_bird->_head=blue; } function buildwing() { // todo: implement builderwing() method. $this->_bird->_wing=blue; } function buildfoot() { // todo: implement builderfoot() method. $this->_bird->_foot=blue; } function getbird() { // todo: implement getbird() method. return $this->_bird; }}/**玫瑰鸟 * class rosebird */class rosebird extends birdbuilder{ function buildhead() { // todo: implement buildhead() method. $this->_bird->_head=red; } function buildwing() { // todo: implement buildwing() method. $this->_bird->_wing=black; } function buildfoot() { // todo: implement buildfoot() method. $this->_bird->_foot=green; } function getbird() { // todo: implement getbird() method. return $this->_bird; }}/**指挥者 * class director */class director{ /** * @param $_builder 建造者 * @return mixed 产品类:鸟 */ function construct($_builder) { $_builder->buildhead(); $_builder->buildwing(); $_builder->buildfoot(); return $_builder->getbird(); }}
调用客户端测试代码:
header(content-type:text/html;charset=utf-8);//------------------------生成器模式测试代码------------------require_once ./builder/builder.php;$director=new director();echo 蓝鸟的组成:
; $blue_bird=$director->construct(new bluebird()); $blue_bird->show(); echo
rose鸟的组成:; $rose_bird=$director->construct(new rosebird()); $rose_bird->show();
php面向对象设计模式
http://www.bkjia.com/phpjc/991915.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/991915.htmltecharticlephp设计模式——建造者模式 建造者模式也称生成器模式,核心思想是将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不...
其它类似信息

推荐信息