摘要:本文主要向大家介绍了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频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号