PHP设计模式之结构模式的深入解析


Posted in PHP onJune 13, 2013

结构模式之间有许多相似之处,因为在对象模型结构中存在几种关系:类之间的继承和实现,加上对象组合,这些是PHP设计模式的主要目的。

对象组合的最大优势在于可以在运行时基于配置建立起一个关系,并不用修改实际的代码,它是类继承和接口实现需要的一个操作。实际上,你完全可以通过修改对象之间而非类之间的链接定义一个应用程序的功能,这是设计的一部分。
结构模式清单

       适配器-桥接-外观(Adapter-Bridge-Facade)

       这三个模式的目标是竞争耦合:
       ◆适配器模式(Adapter)使用不同的接口连接对象;
       ◆桥接模式(Bridge)将一个M抽象层和一个N实现层分离成N+M类,代替M*N用法;
       ◆外观模式(Facade)创建一个新的统一的界面来访问子系统。

       复合-装饰-代理(Composite-Decorator-Proxy)

       这三个模式维护相同的对象接口,它们透明地添加正交关注,客户端不会察觉:
       ◆复合模式为其它对象增加容器组织层次结构,并将树作为其它树的叶子进行重用;
       ◆装饰模式通过拦截方法授权添加行为,避免引入大量的子类;
       ◆代理模式给一个还不存在或很难访问的对象授权操作。

       最后,享元模式(Flyweight)是一个无身份的ValueObjects标准实现。

PHP 相关文章推荐
详细介绍PHP应用提速面面观
Oct 09 PHP
PHP 5.3.0 安装分析心得
Aug 07 PHP
关于PHP session 存储方式的详细介绍
Jun 25 PHP
为PHP5.4开启Zend OPCode缓存
Dec 26 PHP
php获取twitter最新消息的方法
Apr 14 PHP
php实现json编码的方法
Jul 30 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
May 25 PHP
PHP设计模式之命令模式的深入解析
Jun 13 #PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 #PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
Jun 13 #PHP
判断php数组是否为索引数组的实现方法
Jun 13 #PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
Jun 13 #PHP
PHP 基于Yii框架中使用smarty模板的方法详解
Jun 13 #PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
Jun 13 #PHP
You might like
PHP 中英文混合排版中处理字符串常用的函数
2007/04/12 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
2018/05/23 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
2013/07/05 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
2013/09/29 Javascript
详解javascript高级定时器
2015/12/31 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
require.js中的define函数详解
2017/07/10 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
Javascript中parseInt的正确使用方式
2018/10/17 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
谈一谈基于python的面向对象编程基础
2019/05/21 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
Python文件操作的面试题
2013/06/22 面试题
大学生优秀自荐信范文
2014/02/25 职场文书
写求职信要注意什么问题
2014/04/12 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
干部培训简讯
2015/07/20 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
学生会干部任命书
2015/09/21 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
深入理解python协程
2021/06/15 Python
muduo TcpServer模块源码分析
2022/04/26 Redis