• 建造者模式


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

    建造者模式结构图:

    建造者模式结构图

    php实现:

    <?php
    class Product{
        public $part1;
        public $part2;
        public function setPart1($v){
            $this->part1 = $v;
        }
        public function setPart2($v){
            $this->part2 = $v;
        }
    }
    
    abstract class Builder{
        public abstract function BuildPart1($v);
        public abstract function BuildPart2($v);
    }
    
    class concreteBuilder extends Builder{
        private $product;
        public function __construct(){
            $this->product = new Product();
        }
        function BuildPart1($v1){
            $this->product->setPart1($v1);
        }
        function BuildPart2($v2){
            $this->product->setPart2($v2);;
        }
        function getProduct(){
            return $this->product;
        }
    }
    
    class Director{
        private $builde;
        public function __construct(){
            $this->builder = new concreteBuilder();
        }
        function getProductA(){
            $this->builder->BuildPart1("a");
            $this->builder->BuildPart2("aa");
            return $this->builder->getProduct();
        }
        function getProductB(){
            $this->builder->BuildPart1("b");
            $this->builder->BuildPart2("bb");
            return $this->builder->getProduct();
        }
    }
    
    class Client{
        function run(){
            $director = new Director();
            $productA = $director->getProductA();
            echo $productA->part1;
        }
    }
    
    Client::run();
    

      

  • 相关阅读:
    用户故事——老师
    用户故事——学生
    用户故事——管理员
    WebStorm 2018 最新激活码 license server
    vue cli 4.3.1版本脚手架 新人请看系列
    iviewtable表格数据 录音播放下载
    git修改远程仓库地址
    git上传提交个人心得
    layui 数据拆分 重组数据
    日志
  • 原文地址:https://www.cnblogs.com/zhutianpeng/p/4238648.html
Copyright © 2020-2023  润新知