中国电子系统建设公司网站,最专业网站建设,瑞诺国际做外贸网站好吗,wordpress如何打开一#xff0c;建造者模式#xff0c;也叫做生成器模式#xff0c;是创建设计模式的一种#xff0c;它能将一个复杂的对象的创建过程分离开来#xff0c;使你能够分步骤的创建对象。建造者模式也允许你使用相同的建造代码创造出不同类型和形式的对象。 建造者模式一般包括四…一建造者模式也叫做生成器模式是创建设计模式的一种它能将一个复杂的对象的创建过程分离开来使你能够分步骤的创建对象。建造者模式也允许你使用相同的建造代码创造出不同类型和形式的对象。 建造者模式一般包括四个角色 产品角色产品角色定义自身的组成属性抽象建造者抽象建造者定义了产品的创建过程以及如何返回一个产品具体建造者具体建造者实现了抽象建造者创建产品过程的方法给产品的具体属性进行赋值定义指挥者指挥者负责与调用客户端交互决定创建什么样的产品 二例子 //产品角色
class Product
{private $name;private $color;public function name($name): void{$this-name$name;}public function color($color): void{$this-color$color;}
}//抽象建造者角色
abstract class AbstractBuilder
{protected $product;function __construct(){$this-product new Product();}public abstract function setName();public abstract function setColor();public function getResult(){return $this-product;}
}//具体建造者A
class BuilderA extends AbstractBuilder
{public function setName(){$this-product-name(产品A);}public function setColor(){$this-product-color(黑色);}
}//具体建造者B
class BuilderB extends AbstractBuilder
{public function setName(){$this-product-name(产品B);}public function setColor(){$this-product-color(白色);}
}//指挥者/导演者/构造器
class Director
{public function make(AbstractBuilder $builder){$builder-setName();$builder-setColor();return $builder-getResult();}
}//客户端
$director new Director;
$builderA new BuilderA();
$res1$director-make($builderA);
var_dump($res1);$builderB new BuilderB();
$res2$director-make($builderB);
var_dump($res2);