在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。
有两类适配器模式:
·对象适配器模式 - 在这种适配器模式中,适配器容纳一个它我包裹的类的实例。在这种情况下,适配器调用被包裹对 象的物理实体。
·类适配器模式 - 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。
关于JAVA适配器的解释
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 ——Gang of Four
以电脑和鼠标为例。假如有一台笔记本,只有USB鼠标接口,那么代码如下:
UsbMouse.java
package Adapter;
public class UsbMouse {
public String getUsbMouse(){
return "USB鼠标";
}
}
Computer.java
package Adapter;
public class Computer{
UsbMouse mouse = new UsbMouse();
public void StartUp(){
String a = mouse.getUsbMouse();
System.out.println("获得"+a+"成功!");
}
}
测试代码,客户端Client.java
package Adapter;
public class Client {
public static void main(String[] args) {
Computer computer = new Computer();
computer.StartUp();
}
}
要是现在没有USB鼠标,只有PS2鼠标,那么怎么办呢?
代码如下:
新增一个PS2鼠标接口:MouseInterface .java
package Adapter;
//ps2鼠标接口
public interface MouseInterface {
public String getPS2Mouse();
}
PS2鼠标PS2Mouse .java
package Adapter;
public class PS2Mouse extends UsbMouse implements MouseInterface {
public String getPS2Mouse(){
return "PS2鼠标";
}
}
将之前的Computer.java改成如下代码:
package Adapter;
public class Computer{
//UsbMouse mouse = new UsbMouse();
PS2Mouse mouse = new PS2Mouse();
public void StartUp(){
String a = mouse.getUsbMouse();
String b = mouse.getPS2Mouse();
System.out.println("获得"+a+"成功!");
System.out.println("获得"+b+"成功!");
}
}
如上代码所示,增加了一个接口,和一个适配器(PS2鼠标)。电脑就可以获得PS2和USB的鼠标了
分享到:
相关推荐
今天我们要探讨的是JAVA设计中的两个重要模式:抽象类与适配器模式。 首先,我们来理解一下“抽象”。抽象是面向对象编程的核心概念之一,它帮助我们处理对象的复杂性。在Java中,抽象通常通过抽象类来实现。抽象类...
在这个Java实现中,我们将深入探讨适配器模式的两大类型:类适配器模式和对象适配器模式,并通过具体的代码示例和UML类图来阐述其工作原理。 首先,我们来理解适配器模式的基本概念。适配器模式就像现实生活中的...
适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法...
适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法...
Java动态代理模式与适配器模式是两种在软件设计中常用的设计模式,它们都有各自的优点和应用场景。在Java中,动态代理模式主要依赖于Java的反射API和InvocationHandler接口,而适配器模式则用于解决不同接口之间的...