建造者模式

来源:互联网 发布:php源码测试软件 编辑:程序博客网 时间:2024/06/05 18:09

  又名生成器模式,是一种对象构建模式。它可以将负责对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现的对象。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对戏那个的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。列如:一辆汽车由轮子、发动机以及其他零件组成,对于普通人而言,我们使用的只是一辆完整的车,这时,我们需要加入一个构造者,让他帮我们把这些组件按序组装成一辆完成的车

<?php  abstract class Builder{  protected $car;  abstract public function buildPartA();  abstract public function buildPartB();  abstract public function buildPartC();  abstract public function getResult();  }    class CarBuilder extends Builder{  function __construct(){  $this->car=new Car();  }  public function buildPartA(){  $this->car->setPartA('发动机');  }  public function buildPartB(){  $this->car->setPartB('轮子');  }  public function buildPartC(){  $this->car->setPartC('其他零件');  }  public function getResult(){  return $this->car;  }  }  class Car{  protected $partA;  protected $partB;  protected $partC;    public function setPartA($str){  $this->partA=$str;  }  public function setPartB($str){  $this->partB=$str;  }  public function setPartC($str){  $this->partC=$str;  }  public function show(){  echo "这辆车由:".$this->partA.','.$this->partB.',和'.$this->partC.'组成';  }  }  class Director{  public $myBuilder;  public function startBuild(){  $this->myBuilder->buildPartA();  $this->myBuilder->buildPartB();  $this->myBuilder->buildPartC();  return $this->myBuilder->getResult();  }  public function setBuilder(Builder $builder){  $this->myBuilder=$builder;  }    }  $carBuilder=new CarBuilder();  $director=new Director();  $director->setBuilder($carBuilder);  $newCar=$director->startBuild();  $newCar->show();  ?>


原创粉丝点击