这几天看了java的设计模式,看到了适配器模式,先开始还是不太明白,但是后来慢慢的到网上找资料,自己想例子,慢慢的就有点儿懂了什么是适配器模式,在这里和大家分享一下。
什么是适配器?
提到适配器,我们都会想到电脑的适配器,他允许硬件和其他的硬件或者电子接口相连接,其实,编程当中的适配器就是来干这个的,看了一些概念之后,我对适配器的理解就是一个接口转换器,将不适用于某种设备的接口转换成可以使用的接口,以便进行操作的装置。
我们先想一个例子,当我们在听歌的时候有没有注意到,有些某为的手机是type_c的耳机插口,但是有些是圆圆的插头,这就很尴尬,我们想使用同学的耳机听歌的时候,就会出现使用不了的情况,那么我们怎么解决这个问题呢?神奇的人类发明了转接头这个装置,所以,我们还可以在原来的接口上操作设备,那么我们就拿这个写个简单的例子。
public class Client{
public static void main (String [] args) {
Simple sim = new Simple() {
public void simplePlay() {
System.out.println("use simple earphone play");
}
};
TypeCtoSimple tts = new TypeCtoSimple(sim);
tts.typecPlay();
}
}
interface Simple {
public void simplePlay();
}
interface TypeC {
public void typecPlay();
}
class TypeCtoSimple implements TypeC{
private Simple simple;
public TypeCtoSimple(Simple simple) { //得到普通的接口
this.simple = simple;
}
@Override
public void typecPlay() {
// TODO Auto-generated method stub
this.simple.simplePlay();
}
}
首先有两个接口Simple(普通的接口),TypeC(type_c的接口),因为两个之间不是互通直接使用的,所以我们需要转换装置TypeCtoSimple ,在内部包含simple的接口,以便将这个typec的接口转换为simple的接口。当调用适配器操作typec的接口的时候,在方法中调用普通接口的play方法就实现了typec向simple的转换。
适配器的优点
1、解除目标类和适配者之间的耦合
2、增加了类的复用性和透明度,将具体的实现都放在适配者当中,对于客户端来说是透明的,也增加了客户端代码的复用性
3、增加代码的灵活性和扩展性,符合开闭原则
虽然说这篇博客很简短,但是东西却是实实在在的,希望能帮助大家来更好的理解java的适配器模式吧, 为了成为优秀的程序员,我要一直你努力呀!!!