一直对设计模式感到很恐惧,但是作为程序员什么最重要?思想最重要,所以,还是要以砸破砂锅问到底的态度认识一下设计模式。
之所以适配器模式能够引起我的注意,是因为接触springmvc中handlerAdapter的缘故,因为controller以不同的功能分成很多种类型的controller,但是看了别人的帖子之后,发现springmvc所谓的适配器模式其实就是个适配接口,不是真正意义上的适配器模式,那么,适配器模式是什么呢?
比如,我们买的3C产品拿到手中都有一个问题,就是插头与我们的插座不匹配,在不匹配的情况下还想顺利给产品充电,最方便的就是去小卖部花个几块钱买一个转换插头。
这个转换插头就是我们的适配器,插座就是要被适配的对象,实例代码如下:
如果有了第三个类,那么我直接new出“香港转大陆的插头”,然后调用转换功能,就可以进行充电了。
如果你懂了上面的例子,那么可以继续了。
适配器模式分两种:类适配和对象适配。
上述的例子中我们的“香港转大陆的插头”继承了“充电”的类,继承就有意思了,我们JAVA只能单继承,如果我的这个“香港转大陆的插头”不只有充电的功能呢?比如我们插在电脑上还能传送数据呢?(例子不贴切,大概这么理解,就是功能不同),那么单继承就满足不了我们了,那么就可以使用“对象适配”了
如果我们不继承“充电”,该怎么办:
这样就可以适配不同的对象了。
之所以适配器模式能够引起我的注意,是因为接触springmvc中handlerAdapter的缘故,因为controller以不同的功能分成很多种类型的controller,但是看了别人的帖子之后,发现springmvc所谓的适配器模式其实就是个适配接口,不是真正意义上的适配器模式,那么,适配器模式是什么呢?
比如,我们买的3C产品拿到手中都有一个问题,就是插头与我们的插座不匹配,在不匹配的情况下还想顺利给产品充电,最方便的就是去小卖部花个几块钱买一个转换插头。
这个转换插头就是我们的适配器,插座就是要被适配的对象,实例代码如下:
public class 插座{
public void 充电(){
System.out.println("充上电了!");
}
}
public interface 转换插头{
public void 转换();
}
public class 香港转大陆的插头 extends 充电 implements 转换插头{
public void 转换(){
super.充电();
}
}
如果有了第三个类,那么我直接new出“香港转大陆的插头”,然后调用转换功能,就可以进行充电了。
如果你懂了上面的例子,那么可以继续了。
适配器模式分两种:类适配和对象适配。
上述的例子中我们的“香港转大陆的插头”继承了“充电”的类,继承就有意思了,我们JAVA只能单继承,如果我的这个“香港转大陆的插头”不只有充电的功能呢?比如我们插在电脑上还能传送数据呢?(例子不贴切,大概这么理解,就是功能不同),那么单继承就满足不了我们了,那么就可以使用“对象适配”了
如果我们不继承“充电”,该怎么办:
public class 香港转大陆的插头 implements 转换插头
private 插座 object;
public 香港转大陆的插头(插座 object){
this.object = object;
}
public void 转换(){
object.充电();
}
这样就可以适配不同的对象了。