概念
将一个类的接口转换成客户希望的另外一个接口,Adapter使原本由于接口不兼容而不能一起工作的类可以一起工作。
读完后是不是感觉一头雾水?简单来说就是现在有一个现成的类,这个类里面的功能也是咱们所需要的,但就是由于接口不符合,所以需要Adapter来转换一下,转换成咱们能用的。
栗子
有一个图形类:
class Shape{
public String name;
public String getName(){
return name;
}
public void draw(){
}
}
正方形和三角形都继承图形类:
class Triangle extends Shape{
public String name;
@Override
public String getName() {
return this.name;
}
@Override
public void draw() {
super.draw();
}
}
class Square extends Shape{
public String name;
@Override
public String getName() {
return this.name;
}
@Override
public void draw() {
super.draw();
}
}
现在有一个现成的圆形:
class Mycircle {
public String name;
public String getCircleName(){
return name;
}
public void drawCircle(){
}
}
注意这个现成的圆形里面的方法的名字跟我们在图形中定义的名字是不一样的。
我们现在想画一个圆形,但是这个现有的圆形中的方法名跟我们的不一样,我们可以这样转换一下:
class Circle extends Shape{
Mycircle circle=new Mycircle();
@Override
public String getName() {
return circle.getCircleName();
}
@Override
public void draw() {
circle.drawCircle();
}
}
给那个现成的圆形里面的方法再包裹一层,这样接口就符合了,就可以使用了。