`
李灵晖-raylee
  • 浏览: 128753 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

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

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

下面是两组对比的代码:

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 {
	@Override
	public int run(int speed) {
		// TODO Auto-generated method stub
		return 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 {

	@Override
	public void eat() {
		// TODO Auto-generated method stub

	}

	@Override
	public void sleep() {
		// TODO Auto-generated method stub

	}

	@Override
	public int run(int speed) {
		// TODO Auto-generated method stub
		return 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这两个类,从多态的角度出发,使用接口来适配代码的重用性大大的增加,而且代码更加灵活。


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


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

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

目录


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics