Adapter模式(转)
[b]GOF《设计模式》一书对Adapter模式是这样描述的:
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。
这段话大致是说:我们需要一种方式,为一个功能正确但接口不合的对象创建一个新接口。例如,客户给我们如下需求:
1) 为都有“显示”(display)行为的点、线、正方形分别创建类。
2) 客户对象不必知道自己到底拥有点、线、还是正方形。它只需知道拥有这些形状中的一个。
也就是说,我们要用一个更高层次的概念将这些具体形状都涵盖进去,这个高层概念可以称为:“可显示的形状”。因此,我们需要创建一个接口Shape:
interface Shape{ publicvoid display();}class XXCircle{ public void displayCircle(){ System.out.println("通过XXCircle.displayCircle()画圆"); }}class CircleObject implements Shape{ public XXCircle circle; public CircleObject(XXCircle xxcircle){ circle=xxcircle; } public void display() { circle.displayCircle(); }}public class Client { public static void main(String[] args) { XXCircle circle=new XXCircle(); CircleObject co=new CircleObject(circle); co.display(); }}class CircleClass extends XXCircle implements Shape{ public void display() { super.displayCircle(); }}public class Client { public static void main(String[] args) { CircleClass cc=new CircleClass(); cc.display(); }}