PHP设计模式之建造者模式

php中文网
发布: 2016-06-23 13:03:18
原创
1151人浏览过

建造者模式属于创建型模式

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

优点:

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

缺点:

立即学习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);

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号