学习php设计模式 php实现建造者模式
《PHP实战:学习php设计模式 php实现建造者模式》要点: PHP实战建造者模式可以让一个产品的内部表象和和产品的生产过程分离开,从而可以生成具有不同内部表象的产品. PHP实战? PHP实战二、Builder模式中主要角色 PHP实战策略模式(strategy模式):建造者模式在结构上很接近于策略模式,事实上建造者模式是策略模式的一种特殊情况.二者的区别在于用意不同.建造者模式作用于客户端一点一点的建造新的对象,而策略模式的目的是为算法提供抽象的接口. PHP实战建造者模式与模板办法模式:建造者模式在退化、失去导演者角色后,可以发展到模板办法模式(即将建造过程的算法实现放在建造角色中). PHP实战建造者模式与合成模式:合成模式描述一个对象树的组成结构,而建造者模式则可以用来描述对象树的生成过程. PHP实战
<?php
/**
* 产品
* 此处仅以一个产品类中的字符串演示产品
*/
class Product {
/**
* 产品的组成部分集合
*/
private $_parts;
public function __construct() {
$this->_parts = array();
}
public function add($part) {
return array_push($this->_parts,$part);
}
public function show() {
echo "the product include:";
array_map('printf',$this->_parts);
}
}
/**
* 抽象建造者
*/
abstract class Builder {
/**
* 产品零件构造办法1
*/
public abstract function buildPart1();
/**
* 产品零件构造办法2
*/
public abstract function buildPart2();
/**
* 产品返还办法
*/
public abstract function getResult();
}
/**
* 具体建造者
*/
class ConcreteBuilder extends Builder {
private $_product;
public function __construct() {
$this->_product = new Product();
}
public function buildPart1() {
$this->_product->add("Part1");
}
public function buildPart2() {
$this->_product->add("Part2");
}
public function getResult() {
return $this->_product;
}
}
/**
* 导演者
*/
class Director {
public function __construct(Builder $builder) {
$builder->buildPart1();
$builder->buildPart2();
}
}
class Client {
/**
* Main program.
*/
public static function main() {
$buidler = new ConcreteBuilder();
$director = new Director($buidler);
$product = $buidler->getResult();
$product->show();
}
}
Client::main();
?>
PHP实战以上就是使用php实现建造者模式的代码,还有一些关于建造者模式的概念区分,希望对大家的学习有所帮助. 欢迎参与《PHP实战:学习php设计模式 php实现建造者模式》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |