public interface MyInterface; { public void a(); public void b(); public void c(); .....}public class Impl1 implements MyInterface { ///...implements each abstract method here }class Test { main() { MyInterface mi = new Impl1(); mi.a(); mi.b();///......... } }定义接口类型的变量,让该变量指向实现类的对象,此乃面向接口编程
依赖接口,而不依赖于具体实现。最通常的做法是用接口引用实现,是多态的典型应用,如楼上的朋友所写 MyInterface mi = new Impl1(); 或者将一具体实现类传入接口参数,如将mi传入doSomething(Interface iface) 面向接口编程最大好处是解耦
现在我是怎么做的呢?比如一个list.jsp里需要查询,列表,然后看明细信息,然后增加信息,我会第一步在接口里定义完(这个过程会有整体设计的意识),毫不关心底层实现(数据库、事务),我的目标就是"我想要这个功能,我想要那个功能",至于那个功能怎么实现在第一阶段我认为那不是我的事情(尽管这个事情最终还是由我来做) .大家看这个过程和前面的过程有什么本质的不同呢? 就是分层的概念更加明显,你的工作更有层次,每次都有先设计再实现的步骤,而前面那个过程很容易就让你不知不觉地陷入纯实现的陷阱中。大家分享
{
public void a();
public void b();
public void c();
.....}public class Impl1 implements MyInterface
{
///...implements each abstract method here
}class Test
{
main()
{
MyInterface mi = new Impl1();
mi.a();
mi.b();///.........
}
}定义接口类型的变量,让该变量指向实现类的对象,此乃面向接口编程
MyInterface mi = new Impl1();
或者将一具体实现类传入接口参数,如将mi传入doSomething(Interface iface)
面向接口编程最大好处是解耦
使用接口的类,就是享受接口规范中提供的服务,而不用理会是谁为你提供的服务无论是实现,还是使用,看到的都是规范,也就是实现了程序模块之间的低耦合现实的例子:
中国民用电力规范是:220V,50Hz的正弦交流电;家里的电源插座就是电力服务的提供者,是接口的实现者,它只管按照这个规范提供服务,而不管它是为哪种电器服务;家里的家用电器按照这个规范享受服务,而不管电源是来自火力发电厂还是家用柴油发电机。
java 中的例子:
JDBC的几个接口:Connection、Statement、ResultSet,它们都是接口,怎么理解楼主自己去思考
电脑都用过撒 上面有USB接口撒 看好了
虽然我不知道是谁第一个发明了USB接口还规定了它就长成那样 但是现在 所以的电脑附件生产商就必须的按照那个规定去生产他的USB鼠标USB键盘 这就是一个面向接口的现实实例 应该懂了吧
为什么要面向接口 也举个例子
以前说面向对象 那好 我现在要造一个飞机 没错 飞机就是一个对象 它有很多属性 但是 你是否发现这个对象有些庞大而不好把握 那么 现在 我们来拆分一下
飞机 俩翅膀都看到了吧 我们可以使用面向接口的思想 定义好翅膀的属性和它的方法 先造好一堆翅膀
然后依此类推 引擎啊什么的 我们都一一的按照接口给造出来 然后组装就是一个大的飞机对象了
完毕 还有不懂的 欢迎问我