php 和设计模式 - 生成器模式
生成器模式也叫建造者模式,主要用于将一个复杂对象的构造与它的表示分离。该模式允许你使用相同的代码生成不同类型和形式的对象。
什么是复杂对象呢?举个🌰,人类,都有个脑袋,有个身体,又有两条胳膊腿儿,那么,我们就可以把人看作是一个复杂对象。
那么,对于生成器模式来说,我们要把人类对象的创建与它的实例表示进行分离。
class Human
{
public function setHead(string $head)
{
echo 'head:', $head, PHP_EOL;
}
public function setBody(string $body)
{
echo 'body:', $body, PHP_EOL;
}
public function setArms(string $leftArm, string $rightArm)
{
echo 'left arm:', $leftArm, ' right arm:', $rightArm, PHP_EOL;
}
}
interface Builder
{
public function buildHead();
public function buildBody();
public function buildArms();
public function getResult(): Human;
}
class HumanBuilder implements Builder{
private Human $human;
public function __construct()
{
$this->human = new Human();
}
public function buildHead()
{
$this->human->setHead('ai');
}
public function buildBody()
{
$this->human->setBody('body');
}
public function buildArms()
{
$this->human->setArms('left', 'right');
}
public function getResult(): Human
{
return $this->human;
}
}
class Director{
public function builder(Builder $builder): Human
{
$builder->buildHead();
$builder->buildBody();
$builder->buildArms();
return $builder->getResult();
}
}
$director = new Director();
$human = $director->builder(new HumanBuilder());
好了,生成器模式到此结束。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 M-finder!
评论