userinfo add.php,PHP语言设计模式系列 - 装饰器

本文介绍了PHP中的装饰器模式,它允许在不改变原有对象结构的情况下,对对象的部分功能进行扩展。通过一个具体的UserInfo类示例,展示了如何使用装饰器模式将用户信息变为大写,实现了数据的装饰处理。装饰器模式类似于适配器模式,但重点在于保持对象数据结构不变。
摘要由CSDN通过智能技术生成

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

· 什么是装饰器

装饰器模式,对已有对象的部分内容或者功能进行调整,但是不需要修改原始对象结构,可以使用装饰器设

· 应用场景

00001. 设计一个UserInfo类,里面有UserInfo数组,用于存储用户名信息

00002. 通过addUser来添加用户名

00003. getUserList方法将打印出用户名信息

00004. 现在需要将添加的用户信息变成大写的,我们需要不改变原先的类,并且不改变原先的数据结构

00005. 我们设计了一个UserInfoDecorate类来完成这个需求的操作,就像装饰一样,给原先的数据进行了装修

00006. 装饰器模式有些像适配器模式,但是一定要注意,装饰器主要是不改变现有对象数据结构的前提

· 代码:UserInfo

[php] view plain copy

1. <?php

2. //装饰器模式,对已有对象的部分内容或者功能进行调整,但是不需要修改原始对象结构,可以使用装饰器设计模式

3. class UserInfo {

4.

5.     public $userInfo = array();

6.

7.     public function addUser($userInfo) {

8.         $this->userInfo[] = $userInfo;

9.     }

10.

11.     public function getUserList() {

12.         print_r($this->userInfo);

13.     }

14. }

· 代码:UserInfoDecorate 装饰一样,改变用户信息输出为大写格式,不改变原先UserInfo类

[php] view plain copy

1. <?php

2. include("UserInfo.php");

3. class UserInfoDecorate {

4.

5.     public function makeCaps($UserInfo) {

6.         foreach ($UserInfo->userInfo as &$val) {

7.             $val = strtoupper($val);

8.         }

9.     }

10.

11. }

12.

13. $UserInfo = new UserInfo;

14. $UserInfo->addUser('zhu');

15. $UserInfo->addUser('initphp');

16. $UserInfoDecorate = new UserInfoDecorate;

17. $UserInfoDecorate->makeCaps($UserInfo);

18. $UserInfo->getUserList();

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值