太原PHP培训
达内太原php培训中心

0351-5608878

热门课程

太原php培训--PHP设计模式之建造者模式

  • 时间:2016-06-02
  • 发布:佚名
  • 来源:极客头条

太原php培训--PHP设计模式之建造者模式

概述:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

优点:

建造者模式可以很好的将一个对象的实现与相关的业务逻辑分离开来,从而可以在不改变事件逻辑的前提下,使增加(或改变)实现变得非常容易

缺点:

建造者接口的修改会导致所有执行类的修改

以下情况应该使用建造者:

1 需要生成的产品对象有复杂的内部结构

2 需要生成的产品对象的属性相互依赖,建造者模式可以强迫生成顺序

3 在对象创建过程中会使用到系统中的一些其他对象,这些对象在产品的创建过程中不易得到

使用建造者模式主要有一下效果:

1 建造者模式的使用使得产品的内部表象可以独立的变化,使用建造者模式可以使客户端不必知道产品内部组成的细节

2 每一个Builder都相对独立,而与其他的Builder无关

3 模式所建造的最终产品更易于控制

class Product{

public $type = null;

public $price = null;

public $color = null;

public function setType($type){

$this->type = $type;

}

public function setPrice($price){

$this->price = $price;

}

public function setColor($color){

$this->color = $color;

}

}

$config = array(

'type' => 'shirt',

'price' => 100,

'color' => 'red',

);

// 不使用builder模式

$product = new Product();

$product->setType($config['type']);

$product->setPrice($config['price']);

$product->setColor($config['color']);

使用builder模式

/*builder*/

class ProductBuilder{

public $config = null;

public $object = null;

public function __construct($config){

$this->object = new Product();

$this->config = $config;

}

public function build(){

$this->object->setType($this->config['type']);

$this->object->setPrice($this->config['price']);

$this->object->setColor($this->config['color']);

}

public fuction getProduct(){

return $this->object;

}

}

$objBuilder = new ProductBuilder($config);

$objBuilder->build();

$objProduct = $objBuilder->getProduct();

var_dump($objProduct);

好了,今天就给大家讲这么多吧,喜欢我的内容可以关注或者分享(微信公众平台:tytedu)选择太原达内培训,不再孤军奋战,轻轻松松做IT高薪白领。太原达内培训带领有明确目标的学子迈向成功之路!

上一篇:太原php培训--PHP数组与XML之间的转换
下一篇:太原php培训--UPUPW K2.0 发布 , PHP 全系列同时运行

JavaScript 与 Java、PHP 的比较

太原php培训资源站

太原PHP编程开发并发编程槽与坑

Php开发规划自己的路

选择城市和中心
贵州省

广西省

海南省