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仿discuz分页效果代码
Oct 02 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
Sep 23 PHP
php数组函数序列之in_array() 查找数组值是否存在
Oct 29 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
Nov 01 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
PHP中大括号'{}'用法实例总结
Feb 08 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
基于swoole实现多人聊天室
Jun 14 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
Aug 21 PHP
php数组和链表的区别总结
Sep 20 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 PHP
php获取小程序码的实现代码(B类接口)
Jun 13 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
php代码优化及php相关问题总结
2006/10/09 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
php更新mysql后获取改变行数的方法
2014/12/25 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
js怎么判断flash swf文件是否加载完毕
2014/08/14 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
[01:20]PWL开团时刻DAY9——听说潮汐没用?
2020/11/10 DOTA
详解Django框架中用context来解析模板的方法
2015/07/20 Python
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
Booking.com缤客中国:全球酒店在线预订网站
2020/05/03 全球购物
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
大一军训感言
2014/01/09 职场文书
学校安全生产承诺书
2014/05/23 职场文书
党在我心中演讲稿
2014/09/02 职场文书
会计专业自荐信范文
2019/05/22 职场文书