从头认识java-7.6 适配设计模式究竟适配类?还是适配接口?

来源:互联网 发布:农村淘宝 土豪村 编辑:程序博客网 时间:2024/06/04 00:34

这一章节我们来讨论一下适配的问题?

说白了,就是可以使用任何对象调用某个方法,而这个对象只需要符合某种协议。

而这种协议的实现有两种方法:继承和接口,但是一般都是使用接口,因为他的代码复用性比继承强,而且继承本身还包含父类的很多实现,造成不必要的混淆。而且通过接口我们可以实现多重接口(类似多重继承)

下面是两组对比的代码:

package com.ray.ch07;class father {private int id = 0;private void sleep() {}public int run(int speed) {return speed;}}public class Test extends father {@Overridepublic int run(int speed) {// TODO Auto-generated method stubreturn super.run(speed);}}

通过继承,一般都是像上面的代码,Test单继承father,test对象只能向上转型为father类,如果需要多重继承,可能继承的层级就会骤然增多。


我们再来看看接口方面:

package com.ray.ch07;interface Son {void sleep();int run(int speed);}interface Mother {void eat();}public class Test implements Son, Mother {@Overridepublic void eat() {// TODO Auto-generated method stub}@Overridepublic void sleep() {// TODO Auto-generated method stub}@Overridepublic int run(int speed) {// TODO Auto-generated method stubreturn 0;}public static void main(String[] args) {Mother mother = new Test();mother.eat();Son son = new Test();son.sleep();son.run(2);}}

在上面的代码里面Test可以非常容易的向上转型为Son和Mother这两个类,从多态的角度出发,使用接口来适配代码的重用性大大的增加,而且代码更加灵活。


总结:这一章节主要讨论适配的实现中使用哪个,我们推荐使用接口,因为他带来更多的灵活性和代码的复用性。


这一章节就到这里,谢谢。

-----------------------------------

目录


0 0
原创粉丝点击