PHP设计模式之建造者模式定义与用法简单示例
网络编程 2021-07-05 08:24www.168986.cn编程入门
这篇文章主要介绍了PHP设计模式之建造者模式定义与用法,简单描述了建造者模式的概念、原理并结合实例形式分析了建造者模式的具体定义与使用方法,需要的朋友可以参考下
本文实例讲述了PHP设计模式之建造者模式。分享给大家供大家参考,具体如下
建造者模式
将复杂对象的创建过程和表示进行分离(好吧,我也看不懂什么意思1)。
来点我人类能听懂的话
- 1、在客户端看来需要的仅仅是实例化后的类对象(大多数情况下是需要类的属性)。
- 2、传统方式下当类有了之后,一般直接通过
new class()
的方式直接进行实例化,然后通过$obj->set1()
构建属性1,$obj->set2()
构建属性2,$obj->set3()
构建属性3。。。 - 3、传统方式有一个很大的弊端当我们的类发生改变后,我们需要大量的修改,比如文件1中加上
$obj->set4()
,文件2中加上$obj->set4()
,增加很多的工作量。 - 4、建造者模式会给出构建对象的具体实现类,将对象的创建实例化过程封装在建造者类中,并给出一个返回构建后对象的方法,将构建后的对象返回。
- 5、当类发生改变后,只需要改变建造者类中构建对象的
build()
方法,对客户端来说,这并不可见,并且不用做修改就得到了修改后的对象。改动的只是需求对象修改后的逻辑处理。
代码
/ 产品类Person / class Person { public $_head; public $_body; public function setHead($head){ $this->_head=$head; } public function getHead(){ echo $this->_head; } public function setBody($body){ $this->_body=$body; } public function getBody(){ echo $this->_body; } } / 抽象建造者 定义的一个抽象接口,用于对具体建造者类进行规范 / interface Builder{ public function buildHead(); public function buildBody(); public function getResult(); } / 具体建造者 用于实现具体建造者类 / class ConcreteBuilder implements Builder{ public $person; public $data; public function __construct($data){ $this->person=new Person(); $this->data=$data; } public function buildHead(){ $this->person->setHead($this->data['head']); } public function buildBody(){ $this->person->setBody($this->data['body']); } public function getResult(){ return $this->person; } } / 导演者类 用于调用具体建造者类创建产品类实例 / class Director{ public function __construct(ConcreteBuilder $builder){ $builder->buildHead(); $builder->buildBody(); } } / 客户端 根据需求进行逻辑处理 / $data=array( 'head'=>'大头儿子', 'body'=>'身体棒棒哒' ); $builder=new ConcreteBuilder($data); $director=new Director($builder); $person=$builder->getResult(); echo $person->_head; echo $person->_body;
运行结果
大头儿子身体棒棒哒
更多关于PHP相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程