博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php实现适配器模式(转)
阅读量:5967 次
发布时间:2019-06-19

本文共 1270 字,大约阅读时间需要 4 分钟。

地址:

 

设计模式-使用php实现适配器模式

【概要】
结构型模式
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那此类可以一起工作【GOF95】
【结构图】
【主要角色】
目标(Target)角色:定义客户端使用的与特定领域相关的接口,这也就是我们所期待得到的
源(Adaptee)角色:需要进行适配的接口
适配器(Adapter)角色:对Adaptee的接口与Target接口进行适配;适配器是本模式的核心,适配器把源接口转换成目标接口,此角色为具体类
【适用性】
1、你想使用一个已经存在的类,而它的接口不符合你的需求
2、你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类协同工作
3、你想使用一个已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口(仅限于对象适配器)

【单例模式php实例】

* @package design pattern * @version v1.0 2011-12-14 *///目标角色interface Target { public function simpleMethod1(); public function simpleMethod2();}//源角色class Adaptee { public function simpleMethod1(){ echo 'Adapter simpleMethod1'; }}//类适配器角色class Adapter implements Target { private $adaptee; function __construct(Adaptee $adaptee) { $this->adaptee = $adaptee; } //委派调用Adaptee的sampleMethod1方法 public function simpleMethod1(){ echo $this->adaptee->simpleMethod1(); } public function simpleMethod2(){ echo 'Adapter simpleMethod2'; } }//客户端class Client { public static function main() { $adaptee = new Adaptee(); $adapter = new Adapter($adaptee); $adapter->simpleMethod1(); $adapter->simpleMethod2(); }}Client::main();?>

转载地址:http://cbmax.baihongyu.com/

你可能感兴趣的文章
(个人备忘)多人开发 no file directory.....的问题
查看>>
斯特林数-斯特林反演
查看>>
【CQOI2017】小Q的表格
查看>>
jquery源码分析(四)——回调对象 Callbacks
查看>>
一次查内存泄露
查看>>
<x:parse/>获取RSS新闻
查看>>
Linux命令--- /dev/null和/dev/tty
查看>>
UVa(12821),MCMF
查看>>
曲线拟合的线性最小二乘法
查看>>
servlet容器开发要点
查看>>
你是“细”精你就赢了 游戏开发者怎样做好玩家细分
查看>>
史上最简单的SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)
查看>>
CSS之BFC
查看>>
Java图形界面设计
查看>>
bean的类型
查看>>
第二轮 冲次会议第一次
查看>>
将tomcat添加到系统服务
查看>>
算法(Algorithms)第4版 练习 2.1.24
查看>>
php获取远程图片模拟post,file上传到指定服务器
查看>>
使用Builder模式创建复杂可选参数对象
查看>>