宝哥软件园

学习php设计模式php实现适配器模式

编辑:宝哥软件园 来源:互联网 时间:2021-09-21

首先,目的是将一个类的接口转换成客户想要的另一个接口。适配器模式使类不能一起工作,因为接口不兼容。2.适配器模式结构图。

3.适配器模式下的主角色目标角色:定义客户端使用的特定字段相关的接口,也就是我们期望的Adaptee角色:需要适配的接口适配器角色:将Adaptee的接口适配到目标接口;适配器是这种模式的核心,它将源接口转换成目标接口。这个角色是一个具体的类。4.适配器模式的适用场景。1.您想要使用现有的类,但是它的接口不符合您的要求。2.您希望创建一个可重用的类,它可以与其他不相关的类或不可预测的类一起工作。3.您想使用一个现有的子类,但是不可能将每个类子类化以匹配它们的接口。对象适配器可以适应其父类接口(仅对象适配器)。5.类适配器模式和对象适配器类适配器:适配器和适配器被继承。1.匹配特定的适配器类和目标。结果是,当我们想要匹配一个类及其所有子类时,类适配器将无法胜任。2.适配器可以重新定义适配器的某些行为,因为适配器是适配器的子集。3.只引入一个对象,不需要额外的指针来间接获取Adaptee对象Adapter: Adapter和Adaptee是委托关系。1.允许一个适配器同时与多个适配器一起工作。适配器也可以一次向所有适配器添加功能。2.很难重新定义适应者的行为。适配器模式与其他模式(桥接模式)类似:桥接模式与对象适配器类似,但桥接模式的出发点不同:桥接模式的目的是将接口部分与实现部分分开,使它们可以相对容易地独立更改。对象适配器模式意味着改变现有对象的接口装饰器模式:装饰器模式增强了其他对象的功能,而不改变其接口。因此,装饰器模式对应用程序比适配器更透明。第六,类适配器模式PHP示例类适配器使用继承。

?Php/** *目标角色*/接口目标{/** *源类也有方法1 */公共函数samplemethod 1();/* * *源类没有方法2 */公共函数samplemethod 2();}/* * *源角色*/类Adaptee {/** *源类包含方法*/公共函数samplemethod 1(){ echo ' Adaptee samplemethod 1 br/';}}/* * *类适配器角色*/类适配器扩展adaptee实现目标{/* * *源类中没有sampleMethod2方法,所以这里添加*/public函数samplemethod 2(){ echo ' adapter samplemethod 2 br/';} }类客户端{ /** *主程序。*/public static function main(){ $ Adapter=new Adapter();$ adapter-samplemethod 1();$ adapter-samplemethod 2();} } client :3360 main();七.对象适配器模式PHP示例对象适配器使用委托。

?php/** *目标角色*/接口目标{ /** *源类也有的方法1 */公共函数sample method 1();/** * 源类没有的方法2 */公共函数sample method 2();} /** * 源角色*/类Adaptee { /** *源类含有的方法*/public function sample method 1(){ echo ' Adaptee sample method 1 br/';}} /** * 类适配器角色*/类适配器实现目标{ private $ _ Adaptee public function _ _ construct(Adaptee $ Adaptee){ $ this-_ Adaptee=$ Adaptee;} /** * 委派调用Adaptee的抽样方法一方法*/public函数sample method 1(){ $ this-_ adaptee-sample method 1();} /** * 源类中没有抽样方法2方法,在此补充*/public函数sample method 2(){ echo ' Adapter sample method 2 br/';} }类客户端{ /** *主程序*/公共静态函数main(){ $ Adaptee=new Adaptee();$适配器=新的适配器($ adaptee);$ adapter-samplemethod 1();$ adapter-samplemethod 2();} }客户端:3360 main();以上就是使用服务器端编程语言(专业超文本预处理器的缩写)实现适配器模式的代码,还有一些关于适配器模式的概念区分,希望对大家的学习有所帮助。

更多资讯
游戏推荐
更多+