适配器模式

/**
 * 适配器模式(Adapter):将一个类的接口转换成客户希望的另一个接口,adapter模式
 * 使得原本由于接口不兼容,而不能一起工作的那些类可以一起工作.对修改关闭,对拓展开放. 
 * 不兼容的话 就加一个转接头.
 */
public class SixNine {
	/**
	 * 可以看到work(powerB);  是报错的, powerA和powerB是同等级的对象
	 * 
	 */
	public static void main(String[] args) {
		/**
		 * 可以看到  powerA和 powerB 是不可以一起工作的,但是
		 * 在适配器Adapter的  转换头的作用下可以都在work 下工作.
		 */
		PowerA powerA = new PowerAImpl();
		work(powerA);
		PowerB powerB = new PowerBImpl();
		Adapter bToAdapter = new Adapter(powerB);
		work(bToAdapter);
		
	}
	public static void work(PowerA a) {
		System.out.println("正在插入...");
		a.insert();
		System.out.println("插入结束...");
	}
}
class Adapter implements PowerA{// 针对PowerA 的类型做一个接口.
	private PowerB powerB; //  为了使PowerB 适用于上述接口.
	public Adapter(){};
	public Adapter(PowerB powerB) {
		this.powerB = powerB;
	}
	@Override
	public void insert() {
		powerB.connect();
	}
	
}
interface PowerB{
	public void connect();
}
class PowerBImpl implements PowerB{
	@Override
	public void connect() {
		System.out.println("电源B开始工作...");
	}
}
interface PowerA {
	public void insert();
}
class PowerAImpl implements PowerA{

	@Override
	public void insert() {
		// TODO Auto-generated method stub
		System.out.println("电源A开始工作...");
	}
	
}
原文地址:https://www.cnblogs.com/A-FM/p/11636799.html