php建造者模式

2021-03-18  本文已影响0人  一路向后

1.建造者模式简介

   建造者模式将一个复杂对象的构造过程与其表现分离,这样,同一个构造过程可用于创建多个不同的表现.

2.源码实现

<?php

/*具体产品角色: 鸟类*/
class Bird {
    public $_head;
    public $_wing;
    public $_foot;

    public function show()
    {
        echo "头的颜色: {$this->_head}\n";
        echo "翅膀的颜色: {$this->_wing}\n";
        echo "脚的颜色: {$this->_foot}\n";
    }
}

/*抽象鸟的建造者*/
abstract class BirdBuilder {
    protected $_bird;

    public function __construct()
    {
        $this->_bird = new Bird();
    }

    abstract function BuildHead();
    abstract function BuildWing();
    abstract function BuildFoot();

    public function GetBird()
    {
        return $this->_bird;
    }
}

/*具体鸟的建造者: 蓝鸟*/
class BlueBird extends BirdBuilder {
    public function BuildHead()
    {
        $this->_bird->_head = "Blue";
    }

    public function BuildWing()
    {
        $this->_bird->_wing = "Blue";
    }

    public function BuildFoot()
    {
        $this->_bird->_foot = "Blue";
    }
}

/*指挥者*/
class Director {
    function Construct($_builder)
    {
        $_builder->BuildHead();
        $_builder->BuildWing();
        $_builder->BuildFoot();

        return $_builder->GetBird();
    }
}

class Client {
    public static function main()
    {
        $director = new Director();

        $blue_bird = $director->Construct(new BlueBird());

        $blue_bird->show();
    }
}

Client::main();

?>

3.运行及其结果

$ php example.php
头的颜色: Blue
翅膀的颜色: Blue
脚的颜色: Blue
上一篇 下一篇

猜你喜欢

热点阅读