我们会在软件的开发过程中积累各种功能的代码。比如日志操作类,比如网络通信类等等。但是由于种种原因,当我们要用到这些类的时候,比较日期的格式不符合我们的要求,或者坐标的表示方案不同等等。还有一种情况就是这些类的功能都符合我们的要求,只是函数名称有出入。这个时候,类适配器就派上用场了。
所谓的适配器模式,就是让那些原本不符合要求的类通过这个适配器变得符合我们的要求。想想当你的手机需要一个三脚的电源插座而办公桌上只有二脚的插座时,你怎么办?
下面是一个类适配器的例子。
这个例子中:
1.我们开发了一个Retangle类,里面可以把矩形的坐标显示出来;
2.但是,这里采用左上-右下两个点定位一个矩形;
3.在某个时候,我们要显示正方形,它的定位方式是左上角加边长。正方形的格式由Square_data来表示;
4.并且,我们期望用showSquare这个方法把正方形显示出来;
5.由于正方形也是矩形的一种,我们用类适配器,将它转换成矩形显示出来;
6.所以,我们用一个叫做SquareAdapter的类,这个类有如下特点:
a.它有showSquare这个方法,并且参数完全匹配;
b.它是Retangle类的子类,于是我们可以把它当成矩形。
类图如下: