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

yipeiwu_com6年前PHP代码库

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

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

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

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

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

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

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

相关文章

PHP UTF8编码内的繁简转换类

曾找过一个JS版的,但是到了UTF8编码里不能用,于是就产生了自已写一个的念头。其实我这个代码的实现原理很简单的,只是一个替换字符集的过程,相信大部份人都可以写得出来。以下是代码,不知道...

php字符串替换函数substr_replace()用法实例

本文实例讲述了php字符串替换函数substr_replace()用法。分享给大家供大家参考。具体分析如下: substr_replace用于在指定字符串中替换指定位置的子字符串 &...

php实现可逆加密的方法

本文实例讲述了php实现可逆加密的方法。分享给大家供大家参考。具体如下: 这里介绍的可以逆转加密类,没有密钥很难破解。 PHP代码如下: <?php class enc...

使用PHP批量生成随机用户名

程序一:负责从字典中随机提取数据,写入一个新文件。(1.php) 复制代码 代码如下:<?php /* 从字典文件中提取随机值 */ $file1 =...

php日期转时间戳,指定日期转换成时间戳

写过PHP+MySQL的程序员都知道有时间差,UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储、处理方便,但是不直观,格式化日期直观,但是处理起来不如Uni...