适配器模式

Posted by 石玉军 on 2018-07-26

适配器模式:把一个类的接口转换为客户端需要的另一个接口

比如说,我们去相亲,目标中的女孩是会唱歌会跳舞的女孩,但是介绍人说这个女孩只会唱歌,不会跳舞,那你肯定不会满意呀。不过介绍人说,没关系,我有办法。哦?那我们来看看他有什么办法呢

图片

上方Girl接口就是我们希望女孩的样子,也就是女孩接口,会唱歌会跳舞。
这个SimpleGirl就是介绍人一开始说的只会唱歌的女孩
下方Adapter就是介绍人的方法了,它就是通过这个类让我们实现了梦想中的女孩,来看一下实现吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public interface Girl {
public void sing();
public void dance();
}

public class SimpleGirl {
public void sing() {
}
}

public class Adapter implements Girl {
SimpleGirl girl;

Adapter(SimpleGirl girl){
this.girl=girl;
}

@Override
public void dance() {

}
public void sing() {
girl.sing();
}
}

这个实现的原理呢其实就是在女孩类的外面包装了一层,使她学会了跳舞的方法。