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 相关文章推荐
snoopy PHP版的网络客户端提供本地下载
Apr 15 PHP
PHP中函数内引用全局变量的方法
Oct 20 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 PHP
PHP中file_exists()判断中文文件名无效的解决方法
Nov 12 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
Dec 18 PHP
PHP缓冲区用法总结
Feb 14 PHP
让你的PHP7更快之Hugepage用法分析
May 31 PHP
PHP通过curl获取接口URL的数据方法
May 31 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 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
提问的智慧(2)
2006/10/09 PHP
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
php eval函数用法总结
2012/10/31 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
深入浅析用PHP实现MVC
2016/03/02 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
简单的js计算器实现
2016/10/26 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
React 组件间的通信示例
2018/06/14 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
简单谈谈Python中的元祖(Tuple)和字典(Dict)
2017/04/21 Python
Python3爬虫全国地址信息
2019/01/05 Python
python实现祝福弹窗效果
2019/04/07 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
Python3并发写文件与Python对比
2019/11/20 Python
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
Footshop乌克兰:运动鞋的最大选择
2019/12/01 全球购物
干部培训自我鉴定
2014/01/22 职场文书
大学生迟到检讨书500字
2014/10/17 职场文书
MySQL窗口函数的具体使用
2021/11/17 MySQL
python脚本框架webpy模板赋值实现
2021/11/20 Python