适配器模式适用于当你想要使用某个类或者接口的时候,但是他所提供的方法和你的方法不能直接吻合,有一种做法是在你的代码里面去适配,通过修改参数和返回值的值,但是这样的做法会导致代码变得非常的冗余,后期修改起来也十分的不方便。于是就有了适配器模式,通俗的说就是把适配这部分工作放出去交给一个专门用于适配的接口/类。
我们举一个例子,你设计的某个类中的方法是这样的public void draw(int x,int y,int length)
,这个方法是以(x,y)为左下顶点画一个边长为length的正方形,你不想编写那么多画图的代码,所以就想复用别人已经写好的画正方形的代码,但是别人的是以(x,y)作为右下顶点画图的,你可以在代码里面进行计算,使用(x+length,y),但是这样的话两个类之间的耦合度太高了,而且有些适配可不是这么简单的,全部写在代码里面的话会让代码难以理解。你可以使用适配器来实现,方法就是设计一个接口,然后在实现类中实现适配。你的方法调用这个接口中的方法就可以了,相当于一个中间介。
总的来说就是:
public Class yourDraw{
public void draw(int x, int y, int length){
Draw.draw(x, y, length);//调用适配器类中的方法
}
}
public Class Draw{
public static void draw(int x, int y, int length){
XXX.draw(x + length, y, length)//适配器进行些修改之后再使用被复用的类
}
}