Java设计模式之—Adapter模式(适配器模式)
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
Demo1
通过继承去实现适配器功能。
Usb接口类
public interface Usb {
void isUsb();
}
Useber实现类(实现Usb接口)
public class Useber implements Usb {
@Override
public void isUsb() {
System.out.println("USB口");
}
}
Ps2接口类
public interface Ps2 {
void isPs2();
}
Adapter类(继承Usber类,实现Ps2类)
public class Adapter extends Useber implements Ps2 {
@Override
public void isPs2() {
isUsb();
}
}
Clienter类(测试类)
public class Clienter {
public static void main(String[] args) {
Ps2 ps2 = new Adapter();
ps2.isPs2();//结果:USB口
}
}
Demo2
通过组合来实现适配器功能。
Usb接口类
public interface Usb {
void isUsb();
}
Useber实现类(实现Usb接口)
public class Useber implements Usb {
@Override
public void isUsb() {
System.out.println("USB口");
}
}
Ps2接口类
public interface Ps2 {
void isPs2();
}
Adapter实现类(实现Ps2接口类)
public class Adapter implements Ps2{
private Usb usb;
public Adapter(Usb usb) {
this.usb=usb;
}
@Override
public void isPs2() {
usb.isUsb();
}
}
Clienter实现类(测试类)
public class Clienter {
public static void main(String[] args) {
Ps2 p = new Adapter(new Usber());
p.isPs2();//结果:USB口
}
}
Demo3
通过抽象类来实现适配,这种适配稍别于上面所述的适配。
A接口类
public interface A {
void a();
void b();
void c();
void d();
void e();
void f();
}
Adapter实现类(实现A接口)
public abstract class Adapter implements A {
public void a() {
}
public void b() {
}
public void c() {
}
public void d() {
}
public void e() {
}
public void f() {
}
}
Ashili类(继承Adapter实现类)
public class Ashili extends Adapter {
public void a() {
System.out.println("实现A方法被调用");
}
public void d() {
System.out.println("实现d方法被调用");
}
}
Clienter类(测试类)
public class Clienter {
public static void main(String[] args) {
A a = new Ashili();
a.a();//结果:实现A方法被调用
a.d();//结果:实现d方法被调用
}
}