Java设计模式之—Adapter模式(适配器模式)

时间:2019-04-20
本文章向大家介绍Java设计模式之—Adapter模式(适配器模式),主要包括Java设计模式之—Adapter模式(适配器模式)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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方法被调用
	}

}