发布时间:2015-05-27 19:17:48作者:知识屋
建造者模式也称生成器模式,核心思想是将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。
例如:汽车,他的发动机引擎有好多品牌,轮胎也有各种材质,内饰更是千奇百怪;鸟,他的头、翅膀以及脚有各种颜色和形状,在创建这种复杂对象的时候,我们建议使用建造者模式。
类图:
建造者模式一般认为有四个角色:
1.产品角色,产品角色定义自身的组成属性
2.抽象建造者,抽象建造者定义了产品的创建过程以及如何返回一个产品
3.具体建造者,具体建造者实现了抽象建造者创建产品过程的方法,给产品的具体属性进行赋值定义
4.指挥者,指挥者负责与调用客户端交互,决定创建什么样的产品
代码:
_head}; echo 翅膀的颜色:{$this->_wing}; echo 脚的颜色:{$this->_foot}; }}/**抽象鸟的建造者(生成器) * Class BirdBuilder */abstract class BirdBuilder{ protected $_bird; function __construct() { $this->_bird=new Bird(); } abstract function BuildHead(); abstract function BuildWing(); abstract function BuildFoot(); abstract function GetBird();}/**具体鸟的建造者(生成器) 蓝鸟 * Class BlueBird */class BlueBird extends BirdBuilder{ function BuildHead() { // TODO: Implement BuilderHead() method. $this->_bird->_head=Blue; } function BuildWing() { // TODO: Implement BuilderWing() method. $this->_bird->_wing=Blue; } function BuildFoot() { // TODO: Implement BuilderFoot() method. $this->_bird->_foot=Blue; } function GetBird() { // TODO: Implement GetBird() method. return $this->_bird; }}/**玫瑰鸟 * Class RoseBird */class RoseBird extends BirdBuilder{ function BuildHead() { // TODO: Implement BuildHead() method. $this->_bird->_head=Red; } function BuildWing() { // TODO: Implement BuildWing() method. $this->_bird->_wing=Black; } function BuildFoot() { // TODO: Implement BuildFoot() method. $this->_bird->_foot=Green; } function GetBird() { // TODO: Implement GetBird() method. return $this->_bird; }}/**指挥者 * Class Director */class Director{ /** * @param $_builder 建造者 * @return mixed 产品类:鸟 */ function Construct($_builder) { $_builder->BuildHead(); $_builder->BuildWing(); $_builder->BuildFoot(); return $_builder->GetBird(); }}
header(Content-Type:text/html;charset=utf-8);//------------------------生成器模式测试代码------------------require_once ./Builder/Builder.php;$director=new Director();echo 蓝鸟的组成:
如何对PHP文件进行加密方法 PHP实现加密的几种方式介绍
php生成圆角图片的方法 电脑中php怎么生成圆角图片教程
用PHP构建一个留言本方法步骤 php怎么实现留言板功能
php中三元运算符用法 php中的三元运算符使用说明
php文件如何怎么打开方式介绍 php文件用什么打开方法
PHP怎么插入数据库方法步骤 php编程怎么导入数据库教程
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
PHP 获取远程文件大小的3种解决方法 如何用PHP获取远程大文件的大小
20个实用PHP实例代码 php接口开发实例代码详细介绍
如何架设PHP服务器方法步骤 怎么搭建php服务器简单教程