博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php 实现设计模式之 建造者模式
阅读量:4474 次
发布时间:2019-06-08

本文共 1560 字,大约阅读时间需要 5 分钟。

name = $name; } public function setType($type){ $this->type = $type; } public function setPrice($price){ $this->price = $price; } public function setColor($color){ $this->color = $color; } public function show(){ echo $this->name.': '.$this->type.' '.$this->color.' '.$this->price; echo "
"; }}//抽象其创建过程,可用于不同对象创建interface Bulider{ public function createType($type); public function createName($name); public function createColor($color); public function createPrice($price); public function createCar();}class ConcreteBulider implements Bulider{//包含一个复杂对象 public $car; public function __construct(){ $this->car = new Car(); } public function createType($type){ $this->car->setType($type); } public function createColor($color){ $this->car->setColor($color); } public function createName($name){ $this->car->setName($name); } public function createPrice($price){ $this->car->setPrice($price); } public function createCar(){ return $this->car; }}//封装易变的部分,比如顺序、属性class Derictor{ public function __construct(ConcreteBulider $bulider){ $bulider->createColor('红色'); $bulider->createName('宝马'); $bulider->createPrice('150万'); $bulider->createType('SUV'); }}class Client{ public static function main(){ //创建一个建造者,导演类利用其创建对象 $bulider = new ConcreteBulider(); $derictor = new Derictor($bulider); $car = $bulider->createCar(); $car->show(); }}Client::main();?>

  UML类图如下:

 

建造者模式 是创建型模式,用于创建比产品族 还复杂的对象。首先 前提是有一个复杂对象,抽象出复杂对象的创建过程,用于创建其他对象。

写法:建造者包含一个 复杂对象,利用复杂对象的构件过程。。  导演类用于创建对象,包含一个建造者对象。

转载于:https://www.cnblogs.com/taijun/p/4098042.html

你可能感兴趣的文章
三相交流电路中三相负载的计算方法
查看>>
Webform(Linq高级查、分页、组合查询)
查看>>
nio 序列化
查看>>
android:强大的图像下载和缓存库Picasso
查看>>
Tick and Tick------HDOJ杭州电(无法解释,直接看代码)
查看>>
開始Unity3D的学习之旅
查看>>
WEB安全实战(一)SQL盲注
查看>>
华为HG8347R V3R016C10S135光猫桥接 北京联通 恢复华为原版
查看>>
Java文件下载:如何编码文件名称以及如何设置HttpServletResponse
查看>>
python 之@staticmethod和@classmethod
查看>>
QQ通信机制(转)
查看>>
泛型高级通配符
查看>>
[复习]Python回顾 OS模块,函数传参,模块导入
查看>>
什么是反射?以及应用场景?
查看>>
Hadoop集群时钟同步
查看>>
IT从业者真的成了民工,悲哀呀
查看>>
iphone开发中调用系统打电话功能
查看>>
ios 查看UIView的层次继承关系工具
查看>>
C++二维数组讲解、二维数组的声明和初始化
查看>>
纹理映射和混合
查看>>