3 .1适配器模式概念

定义:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。 

使用场景:

1 系统需要使用现有的类,而这些类的接口不符合系统的需要。 
2 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。 
3 需要一个统一的输出接口,而输入端的类型不可预知。

类型:类适配者模式、对象适配者模式

类适配者模式:主要思想就是继承,令适配器(adpater)继承被适配者(adaptee)的接口,再来实现目标(target)

package AdapterDesign;

//被适配者
public class Adaptee {
	public void adpateeRequest() {
		System.out.println("被适配者的方法");
	}
}
package AdapterDesign;

public interface Target {
	void request();
}
package AdapterDesign;

public class Adapter extends Adaptee implements Target {

	@Override
	public void request() {
		// TODO Auto-generated method stub
		super.adpateeRequest();
	}
	
}
package AdapterDesign;

public class ConcreteTarget implements Target {

	@Override
	public void request() {
		// TODO Auto-generated method stub
		System.out.println("ConcreteTarget 目标方法");
	}

}
package AdapterDesign;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Target target1=new ConcreteTarget();
		target1.request();
		
		Adapter adapter=new Adapter();
		adapter.request();
	}

}

结果:

ConcreteTarget 目标方法
被适配者的方法

UML类结构图

对象适配者:主要通过组合方式,adapter对象内含有adaptee的对象。

和类适配器基本一样,只有adapter不一样:

package AdapterDesign.ObjectAdapter;

public class Adapter implements Target {
	Adaptee adaptee=new Adaptee();
	@Override
	public void request() {
		// TODO Auto-generated method stub
		adaptee.adpateeRequest();
	}
	
}


版权声明:本文为qq_33605294原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。