PHP设计模式系列(八):建造者模式
2017-04-29 21:44
591 查看
建造者模式
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中文翻译的不同,建造者模式又可以称为生成器模式。
模式结构
建造者模式包含如下角色:Builder:抽象建造者
ConcreteBuilder:具体建造者
Director:指挥者
Product:产品角色
结构图
PHP代码实现
<?php /** * 建造者模式 */ //Product:产品角色 class Product { public function Add($part){ $this->parts[]=$part; } public function show(){ var_dump('产品创建'); foreach ($this->parts as $part){ var_dump($part); } } } //Builder:抽象建造者 interface Builder { public function BuildPartA(); public function BuildPartB(); public function GetResult(); } //ConcreteBuilder:具体建造者 class ConcreteBuilder1 implements Builder { public function __construct(){ $this->product=new Product(); } public function BuildPartA() { $this->product->Add('部件A'); } public function BuildPartB() { $this->product->Add('部件B'); } public function GetResult() { return $this->product; } } class ConcreteBuilder2 implements Builder { public function __construct(){ $this->product=new Product(); } public function BuildPartA() { $this->product->Add('部件X'); } public function BuildPartB() { $this->product->Add('部件Y'); } public function GetResult() { return $this->product; } } //Director:指挥者 class Director { public function Construct($builder){ $builder->BuildPartA(); $builder->BuildPartB(); } } $a=new Director(); $b1=new ConcreteBuilder1(); $b2=new ConcreteBuilder2(); $a->Construct($b1); $p1=$b1->GetResult(); $p1->show(); $a->Construct($b2); $p2=$b2->GetResult(); $p2->show();
运行结果
string '产品创建' (length=12) string '部件A' (length=7) string '部件B' (length=7) string '产品创建' (length=12) string '部件X' (length=7) string '部件Y' (length=7)
相关文章推荐
- PHP设计模式系列 - 建造者模式
- PHP设计模式系列 - 建造者模式
- php设计模式学习系列(六)--建造者模式
- PHP设计模式系列 - 建造者模式
- Android设计模式系列(12)--SDK源码之生成器模式(建造者模式)
- PHP设计模式之适配器模式,建造者模式,数据访问对象模式
- 深入理解JavaScript系列(27):设计模式之建造者模式
- C# 设计模式系列教程-建造者模式
- java设计模式系列-建造者模式
- PHP设计模式系列(九):观察者模式
- PHP设计模式系列(十):抽象工厂模式
- PHP设计模式系列 - 策略模式
- PHP设计模式之:建造者模式
- PHP设计模式系列 - 数据访问对象模式
- [置顶] 设计模式系列5-建造者模式
- PHP设计模式-工厂系列(一)-简单工厂模式(静态工厂模式)
- PHP设计模式系列 - 迭代器
- PHP设计模式系列 - 单例
- 深入理解JavaScript系列(27):设计模式之建造者模式
- PHP设计模式之建造者模式定义与用法简单示例