外贸建站 wordpress,青岛网站开发中心,网页设计与制作实训报告两千字,设计logo的手机软件免费适配器模式#xff1a;属于结构型模式#xff0c;结合了两个独立接口的功能#xff0c;作为 两个不兼容的接口之间的桥梁 。 介绍
意图#xff1a;将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要… 适配器模式属于结构型模式结合了两个独立接口的功能作为 两个不兼容的接口之间的桥梁 。 介绍
意图将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决问题1、系统需要使用现有的类而此类的接口不符合系统的需要。 2、想要建立一个可以重复使用的类用于与一些彼此之间没有太大关联的一些类包括一些可能在将来引进的类一起工作这些源类不一定有一致的接口。 3、通过接口转换将一个类插入另一个类系中。关键代码1、目标Target接口 定义客户端使用的特定接口。 2、被适配者Adaptee 需要被适配的接口。 3、适配器Adapter将被适配者的接口转换成目标接口使得客户端可以使用被适配者。优点1、使得客户端代码与被适配者解耦客户端不需要知道被适配者的具体接口。2、可以复用现有的类而不需要修改其源代码。缺点如果系统中存在大量不同的适配器可能会使系统变得复杂。
示例
假设有一个中国插头的设备但你在美国这里的插座是美国标准的。你可以创建一个适配器将中国插头适配到美国插座。
// 目标接口
interface USPlug {void plugIn();
}// 被适配者
class ZHPlug {void insert() {System.out.println(Inserting ZH plug);}
}// 适配器
class ZHToUSPlugAdapter implements USPlug {private ZHPlug zhPlug;public ZHToUSPlugAdapter(ZHPlug zhPlug) {this.zhPlug zhPlug;}Overridepublic void plugIn() {zhPlug.insert();System.out.println(Adapter converting to US plug);}
}// 客户端
public class Client {public static void main(String[] args) {// 使用适配器ZHPlug ukPlug new ZHPlug();USPlug usPlugAdapter new ZHToUSPlugAdapter(zhPlug);// 客户端只需要与目标接口交互usPlugAdapter.plugIn();}
}