设计模式——适配器模式

            HeadFirst中的定义:适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。

        适配器模式将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能在一起 工作的类可以在一起工作。
            目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类也可以是接口。
            需要适配的类(Adaptee):需要适配的类或适配者类。
            适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标对象。
            使用场景:旧系统的改造和升级。
                          JavaIO中的转换流:java.io.InputStreamReader(InputStream)
                              java.io.OutputStreamReader(OutputStream)

           Demo:

public class Adaptee {
	public void request() {
		System.out.println("满足了客户端的需求");
	}

}

public interface Target {
	void handleReq();

}

public class Adapter implements Target {
	Adaptee adaptee = new Adaptee();
	@Override
	public void handleReq() {
		adaptee.request();
	}
	
	public Adapter(Adaptee adaptee) {
		this.adaptee = adaptee;
	}
	
}

public class Client {
	public void linkReq(Target target) {
		target.handleReq();
	}
	
	public static void main(String[] args) {
		Adaptee adaptee = new Adaptee();   //客户需要的,被适配的对象
		
		Target adapter = new Adapter(adaptee);//被适配的对象与适配器耦合
		
		Client client = new Client();
		
		client.linkReq(adapter);//客户端与适配器的接口耦合
	}
}

 

posted @ 2015-05-22 16:11  Pickle  阅读(527)  评论(0编辑  收藏  举报