博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大话设计模式第十三章---建造者模式
阅读量:6902 次
发布时间:2019-06-27

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

_parts[] = $part; } public function show() { echo "\n PRODUCT CREATEING...
"; foreach ($this->_parts as $part) { echo $part; echo "
"; } }}abstract class Builder { abstract function build_part_A(); abstract function build_part_B(); abstract function get_result(): Product;}class Concrete_builder_one extends Builder { private $_product = null; public function __construct() { $this->_product = new Product(); } public function build_part_A() { $this->_product->add('PART A'); } public function build_part_B() { $this->_product->add('PART B'); } public function get_result() : Product { return $this->_product; }}class Concrete_builder_two extends Builder { private $_product = null; public function __construct() { $this->_product = new Product(); } public function build_part_A() { $this->_product->add('PART X'); } public function build_part_B() { $this->_product->add('PART Y'); } public function get_result() : Product { return $this->_product; }}class Director { public function concrete(Builder $builder) { $builder->build_part_A(); $builder->build_part_B(); }}//CLIENT CODE$director = new Director();$b1 = new Concrete_builder_one();$b2 = new Concrete_builder_two();$director->concrete($b1);$product1 = $b1->get_result();$product1->show();$director->concrete($b2);$product2 = $b2->get_result();$product2->show();

 

建造者模式:

  将一个复杂对象的构建与它的表示分离,使得同样的建造过程可以创建不同的表示。

  如果我们用了建造者模式,那么用户就只需要指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需要知道了。

  Director,指挥者,它是构建一个使用Builder接口的对象。在Director中完成部件的装配(即建造过程)!!

转载于:https://www.cnblogs.com/wy0314/p/4773279.html

你可能感兴趣的文章
Exchange server 2003迁移到2010无路由组连接器
查看>>
xcode lldb gdb调试
查看>>
经典SQL语句大全
查看>>
20个PPT制作的诀窍
查看>>
java(二十二)枚举
查看>>
传统企业做电子商务需要用好模式,盲目跟踪中“商”自己
查看>>
Office 365管理员指引 13——创建部门网站
查看>>
虚函数
查看>>
Hashtable 与HashMap的区别
查看>>
分享常用的gis算法(C#)
查看>>
android获取google邮箱
查看>>
打造高可用 LVS+keepalived
查看>>
商务表现仍不及三星Note5的iPhone何时会再出个SPen?
查看>>
给定一个有序整数数组,元素各不相同且按照升序排列,编写一个算法,创建一个高度最小的二叉查找树...
查看>>
分布式搜索elasticsearch 环境搭建 -插件
查看>>
源码安装lamp
查看>>
统计大写字母个数
查看>>
js延时执行
查看>>
htop,glances,以及dstat等几个命令的用法
查看>>
ObjectARX_选择集
查看>>