课程咨询 :13623629309

太原PHP培训 > 达内新闻 > 太原php培训--PHP设计模式之建造者模式
  • 太原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 全系列同时运行

最新开班日期  |  更多

php高级开发名企定制班(剩2个名额)

php高级开发名企定制班(剩2个名额)

开班日期:12-30

php高级开发周末班(剩5个名额)

php高级开发周末班(剩5个名额)

开班日期:12-30

php高级开发免费试听(剩5个名额)

php高级开发免费试听(剩5个名额)

开班日期:12-30

更多高级开发工程师精品班

更多高级开发工程师精品班

开班日期:12-30

  • 地址:山西省太原市小店区学府街长治路高新国际A座24层
  • 课程培训电话:13623629309     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56

    在线客服系统