• 技术文章 >后端开发 >php教程

    php设计模式 Builder(建造者模式)

    高洛峰高洛峰2016-11-30 09:34:29原创635
    复制代码 代码如下:
    <?php
    /**
    * 建造者模式
    *
    * 将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示
    */
    class Product
    {
    public $_type = null;
    public $_size = null;
    public $_color = null;

    public function setType($type)
    {
    echo "set product type<br/>";
    $this->_type = $type;
    }

    public function setSize($size)
    {
    echo "set product size<br/>";
    $this->_size = $size;
    }

    public function setColor($color)
    {
    echo "set product color<br/>";
    $this->_color = $color;
    }
    }

    $config = array(
    "type"=>"shirt",
    "size"=>"xl",
    "color"=>"red",
    );

    // 没有使用bulider以前的处理
    $oProduct = new Product();
    $oProduct->setType($config['type']);
    $oProduct->setSize($config['size']);
    $oProduct->setColor($config['color']);


    // 创建一个builder类
    class ProductBuilder
    {
    var $_config = null;
    var $_object = null;

    public function ProductBuilder($config)
    {
    $this->_object = new Product();
    $this->_config = $config;
    }

    public function build()
    {
    echo "--- in builder---<br/>";
    $this->_object->setType($this->_config['type']);
    $this->_object->setSize($this->_config['size']);
    $this->_object->setColor($this->_config['color']);
    }

    public function getProduct()
    {
    return $this->_object;
    }
    }

    $objBuilder = new ProductBuilder($config);
    $objBuilder->build();
    $objProduct = $objBuilder->getProduct();
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php
    上一篇:php设计模式 Adapter(适配器模式) 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 浅析PHP中的类自动加载相关文件• 系统讲解PHP缓存技术• 一文理解和实现现代PHP框架里的IOC容器• 深入了解PHP:用gdb调试源码• 实例介绍:使用Docker快速搭建多版本PHP开发环境
    1/1

    PHP中文网