PHP语言设计模式系列 - 建造者模式
小标 2018-07-04 来源 : 阅读 914 评论 0

摘要:本文主要向大家介绍了PHP语言设计模式系列 - 建造者模式,通过具体的实例向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言设计模式系列 - 建造者模式,通过具体的实例向大家展示,希望对大家学习php语言有所帮助。

· 什么是建造者模式

建造者模式主要是为了消除其它对象复杂的创建过程。

· 设计场景

00001. 

00001. 

有一个用户的UserInfo类,创建这个类,需要创建用户的姓名,年龄,金钱等信息,才能获得用户具体的信息结果。

00002. 

00003. 

创建一个UserInfoBuilder 用户建造者类,这个类,将UserInfo复杂的创建姓名,年龄,金钱等操作封装起来,简化用户类的创建过程

00004. 

· 代码:UserInfo类,创建UserInfo类是复杂的,痛苦的。

[php] view plain copy

1. //建造者模式,目的是消除其它对象复杂的创建过程  

2.   

3. /* 描述一个用户的类,包含用户姓名,年龄,金钱 */  

4. class UserInfo {  

5.   

6.     protected $userName = '';    

7.     protected $userAge = '';  

8.     protected $userMoney = '';  

9.   

10.     public function setUserName($userName) {  

11.         $this->userName = $userName;  

12.     }     

13.       

14.     public function setUserAge($userAge) {  

15.         $this->userAge = $userAge;  

16.     }     

17.       

18.     public function setUserMoney($userMoney) {  

19.         $this->userMoney = $userMoney;  

20.     }  

21.       

22.     public function getPeople() {  

23.         echo "这个人的姓名是:" . $this->setUserName . ',年龄是:'  . $this->userAge . ', 金钱:' . $this->userMoney;  

24.     }  

25. }  

26. /* 实例化,并且创建这个用户的时候,是很痛苦的,需要设置用户名,年龄和金钱*/  

27. $peopleInfo = array(  

28.     'userName' => 'initphp',  

29.     'userAge' => 28,  

30.     'userMoney' => '100元'  

31.     );  

32. $UserInfo = new UserInfo;  

33. //下面需要一步步的设置用户信息,才能得到用户详细信息,过程纠结而痛苦  

34. $UserInfo->setUserName($peopleInfo['userName']);   

35. $UserInfo->setUserAge($peopleInfo['userAge']);  

36. $UserInfo->setUserMoney($peopleInfo['userMoney']);  

37. $UserInfo->getPeople();  

· 代码:UserInfoBuilder 用户信息建造者类,将UserInfo的创建过程封装掉,开发者使用起来心情舒畅

[php] view plain copy

1. <?php  

2. //建造者模式,目的是消除其它对象复杂的创建过程  

3. include("UserInfo.php");  

4. class UserInfoBuilder {  

5.     protected $obj;  

6.       

7.     public function __construct() {  

8.         $this->obj = new UserInfo;  

9.     }  

10.       

11.     public function buildPeople($peopleInfo) {  

12.         $this->obj->setUserName($peopleInfo['userName']);  

13.         $this->obj->setUserAge($peopleInfo['userAge']);  

14.         $this->obj->setUserMoney($peopleInfo['userMoney']);  

15.     }   

16.       

17.     public function getPeople() {  

18.         $this->obj->getPeople();  

19.     }  

20. }  

21.   

22. /* 创建过程被封装了,用户使用简单了 */  

23. $peopleInfo = array(  

24.     'userName' => 'initphp',  

25.     'userAge' => 28,  

26.     'userMoney' => '100元'  

27.     );  

28. $UserInfoBuilder = new UserInfoBuilder;  

29. $UserInfoBuilder->buildPeople($peopleInfo); //直接一个build  

30. $UserInfoBuilder->getPeople();  


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言PHP频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程