适配器模式(Adapter Pattern)

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


通过加入适配器,在不修改原有类/接口和现有类/接口的情况下使原本不互通的2个类/接口兼容

没有修改就意味着没有风险


适配器模式分为3个组成部分:

Target -- 目标类/接口

Adapter -- 适配器

Adaptee -- 被适配的类/接口(被适配器适配成需要的目标类/接口)

例如:


public class Chick {
	public void crow(){
		System.out.println("chick crow!");
	}
}
public class DuckAdapter extends Chick {
	private Duck duck;
	
	public DuckAdapter(Duck duck){
		this.duck = duck;
	}
	
	public void crow(){
		duck.quack();
	}
}
public class Duck {
	public void quack(){
		System.out.println("duck quack!");
	}
}
public class Test {
	public static void main(String[] args) {
		Chick c = new DuckAdapter(new Duck());
		c.crow();
	}
}

运行结果:

duck quack!

当然所有被适配对象/接口(Duck)的子类也可以通过该适配器(DuckAdapter)与目标对象/接口(Chick)兼容


稍微改进适配器(DuckAdapter)能够提供更多的功能:


缺点:如果目标类/接口(Chick)比较庞大,适配器(DuckAdapter)也会变得相当庞大,难于维护




posted @ 2013-06-08 10:19  心意合一  阅读(135)  评论(0编辑  收藏  举报