时间:2021-07-01 10:21:17 帮助过:7人阅读
建造者模式也称生成器模式,核心思想是将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。
例如:汽车,他的发动机引擎有好多品牌,轮胎也有各种材质,内饰更是千奇百怪;鸟,他的头、翅膀以及脚有各种颜色和形状,在创建这种复杂对象的时候,我们建议使用建造者模式。
类图:

建造者模式一般认为有四个角色:
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 蓝鸟的组成:
http://www.bkjia.com/PHPjc/991915.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/991915.htmlTechArticlePHP设计模式——建造者模式 建造者模式也称生成器模式,核心思想是将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不...