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中使用redis
Nov 04 PHP
php中session使用示例
Mar 29 PHP
php简单实现发送带附件的邮件
Jun 10 PHP
PHP+shell实现多线程的方法
Jul 01 PHP
使用PHP uniqid函数生成唯一ID
Nov 18 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
PHP双向链表定义与用法示例
Jan 31 PHP
统计PHP目录中的文件数方法
Mar 05 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 PHP
YII2框架使用控制台命令的方法分析
Mar 18 PHP
php+js实现点赞功能的示例详解
Aug 07 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中用hash实现的数组
2011/07/17 PHP
dedecms集成财付通支付接口
2014/12/28 PHP
php简单统计在线人数的方法
2016/05/10 PHP
js 解决“options为空或不是对象”
2008/12/22 Javascript
Javascript图像处理思路及实现代码
2012/12/25 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
2017/01/09 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
JS删除String里某个字符的方法
2021/01/06 Javascript
JavaScript RegExp 对象用法详解
2019/09/24 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
浅谈Python中(&,|)和(and,or)之间的区别
2019/08/07 Python
python爬虫之遍历单个域名
2019/11/20 Python
Python with标签使用方法解析
2020/01/17 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
银行实习生自我鉴定范文
2013/09/19 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
法制报告会主持词
2014/04/02 职场文书
护士节策划方案
2014/05/19 职场文书
运动员口号
2014/06/09 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书
小学教师自我评价
2015/03/04 职场文书
治理商业贿赂工作总结
2015/08/10 职场文书
2016年大学生寒假社会实践心得体会
2015/10/09 职场文书