PHP设计模式系列 - 装饰器
来源:互联网 发布:dota6.83c数据 编辑:程序博客网 时间:2024/05/16 14:54
- 什么是装饰器
装饰器模式,对已有对象的部分内容或者功能进行调整,但是不需要修改原始对象结构,可以使用装饰器设
- 应用场景
- 设计一个UserInfo类,里面有UserInfo数组,用于存储用户名信息
- 通过addUser来添加用户名
- getUserList方法将打印出用户名信息
- 现在需要将添加的用户信息变成大写的,我们需要不改变原先的类,并且不改变原先的数据结构
- 我们设计了一个UserInfoDecorate类来完成这个需求的操作,就像装饰一样,给原先的数据进行了装修
- 装饰器模式有些像适配器模式,但是一定要注意,装饰器主要是不改变现有对象数据结构的前提
- 代码:UserInfo
<?php//装饰器模式,对已有对象的部分内容或者功能进行调整,但是不需要修改原始对象结构,可以使用装饰器设计模式class UserInfo {public $userInfo = array(); public function addUser($userInfo) {$this->userInfo[] = $userInfo;}public function getUserList() {print_r($this->userInfo);}}
- 代码:UserInfoDecorate 装饰一样,改变用户信息输出为大写格式,不改变原先UserInfo类
<?phpinclude("UserInfo.php");class UserInfoDecorate {public function makeCaps($UserInfo) {foreach ($UserInfo->userInfo as &$val) {$val = strtoupper($val);}}}$UserInfo = new UserInfo;$UserInfo->addUser('zhu');$UserInfo->addUser('initphp');$UserInfoDecorate = new UserInfoDecorate;$UserInfoDecorate->makeCaps($UserInfo);$UserInfo->getUserList();
参考:《PHP设计模式》Aaron Saray著
- PHP设计模式系列 - 装饰器
- PHP设计模式系列 - 装饰器
- PHP设计模式系列 - 装饰器
- 设计模式系列-----------装饰器模式(Decorator)
- PHP设计模式系列(二):装饰模式
- PHP设计模式-装饰器模式
- PHP设计模式-装饰器模式
- php设计模式之装饰器模式
- 【设计模式】之装饰器模式-PHP
- PHP设计模式之装饰器模式
- PHP设计模式之装饰器模式
- PHP 设计模式之装饰器模式
- 设计模式系列-装饰模式
- 装饰模式----设计模式系列
- php设计模式之装饰器
- PHP设计模式:装饰模式
- iOS 设计模式系列:Decorator – 装饰器模式
- php设计模式——装饰器模式
- 探索ORACLE之RMAN_07单个数据文件丢失恢复
- C#基础知识整理:基础知识(1) Main方法
- 一段获取ssdt表及其中函数的简单代码
- 互联网公司技术总监工作内容
- C#用正则表达式 获取网页源代码标签的属性或值
- PHP设计模式系列 - 装饰器
- 美国知名科技公司入门级软件工程师的薪水排名
- 探索ORACLE之RMAN_07整个业务表空间丢失恢复
- jQuery获取Select选中的Text和Value(jquery学习备忘录)
- jquery value text
- 构造IRP 直接读写磁盘扇区内容
- 探索ORACLE之RMAN_07 system表空间丢失恢复
- 重构 改善既有代码的设计 读书笔记1
- MFC实现CListCtrl子项可编辑的简便操作