php 建造者生成器模式学习笔记
发布:smiling 来源: PHP粉丝网 添加日期:2016-08-22 10:26:32 浏览: 评论:0
本文章来为各位整理一篇关于php建造者生成器模式学习笔记,希望这篇文章能够帮助到各位朋友哦,有兴趣的朋友可以进来看看的哦.
适用场景:
1、需要生成的产品对象有复杂的内部结构。
2、需要生成的产品对象的属性相互依赖,生成器模式可以强迫生成顺序。
3、在对象创建过程中会使用到系统中的一些其它对象,这些对象在产品对象的创建过程中不易得到。
使用效果:
1、生成器模式的使用使得产品的内部表象可以独立的变化,使用生成器模式可以使客户端不必知道产品内部组成的细节.
2、每一个Builder都相对独立,而与其它的Builder无关.
3、模式所建造的最终产品更易于控制.
- <?php
- /**
- * Created by PhpStorm.
- */
- /**具体产品角色 车
- * Class Car
- */
- class Car
- {
- public $_head;
- public $_engine;//引擎
- public $_tyre;//轮胎
- function show()
- {
- echo "车头的颜色:{$this->_head}<br/>";
- echo "引擎的品牌:{$this->_engine}<br/>";
- echo "轮胎的品牌:{$this->_tyre}<br/>";
- }
- }
- /**抽象车的建造者(生成器)
- * Class CarBuilder
- */
- abstract class CarBuilder
- {
- protected $_car;
- function __construct()
- {
- $this->_car=new Car();
- }
- abstract function BuildHead();
- abstract function BuildEngine();
- abstract function BuildTyre();
- abstract function GetCar();
- }
- /**具体车的建造者(生成器) 宝马
- * Class BMW
- */
- class BMW extends CarBuilder
- {
- function BuildHead()
- {
- // TODO: Implement BuilderHead() method.
- $this->_car->_head="Black";
- }
- function BuildEngine()
- {
- // TODO: Implement BuildEngine() method.
- $this->_car->_engine="BMW";
- }
- function BuildTyre()
- {
- // TODO: Implement BuildTyre() method.
- $this->_car->_tyre="BMW";
- }
- function GetCar()
- {
- // TODO: Implement GetCar() method.
- return $this->_car;
- }
- }
- /**别克
- * Class BuickBird
- */
- class BuickBird extends CarBuilder
- {
- function BuildHead()
- {
- // TODO: Implement BuildHead() method.
- $this->_car->_head="Red";
- }
- function BuildEngine()
- {
- // TODO: Implement BuildEngine() BMmethod.
- $this->_car->_engine="Buick";//
- }
- function BuildTyre()
- {
- // TODO: Implement BuildTyre() method.
- $this->_car->_tyre="Buick";
- }
- function GetCar()
- {
- // TODO: Implement GetCar() method.
- return $this->_car;
- }
- }
- /**指挥者
- * Class Director
- */
- class Director
- {
- /**
- * @param $_builder 建造者
- * @return mixed 产品类:车
- */
- function Construct($_builder)
- { //phpfensi.com
- $_builder->BuildHead();
- $_builder->BuildEngine();
- $_builder->BuildTyre();
- return $_builder->GetCar();
- }
- }
Tags: php生成器 php模式 php笔记
- 上一篇:php 适配器模式的学习笔记
- 下一篇:PHP中简单工厂模式的学习笔记
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)