什么是基于接口编程?【面试题详解】

今天爱分享给大家带来什么是基于接口编程?【面试题详解】,希望能够帮助到大家。
在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即
不是直接实例化在上层中),而是通过定义一组接口,仅向上层暴露其接口功能,上层
对于下层仅仅是接口依赖,而不依赖具体类。
这样做的好处是显而易见的,首先对系统灵活性大有好处。当下层需要改变时,只要接
口及接口功能不变,则上层不用做任何修改。甚至可以在不改动上层代码时将下层整个
替换掉,使用接口的另一个好处就是不同部件或层次的开发人员可以并行开工,只要接
口一致,设计合理,完全可以并行进行开发,从而提高效率。
面向对象语言中的“接口”是指具体的一种代码结构,例如 C#中用 interface 关键字定义
的接口。而“面向接口编程”中的“接口”可以说是一种从软件架构的角度、从一个更抽象
的层面上指那种用于隐藏具体底层类和实现多态性的结构部件。
面向接口编程”中的接口是一种思想层面的用于实现多态性、提高软件灵活性和可维护
性的架构部件,而具体语言中的“接口”是将这种思想中的部件具体实施到代码里的手段。
如果单从具体代码来看,对这两个概念很容易模糊,甚至觉得接口就是多余的,因
为单从具体功能来看,除多重继承外(C#,Java 中),抽象类似乎完全能取代接口。但
是,抽象类和接口的区别在于使用动机。使用抽象类是为了代码的复用,而使用接口的
动机是为了实现多态性。

人已赞赏
Java

JAVA 中常用的数据结构有哪些?【面试题详解】

2020-12-7 14:54:23

Java

如何用 JAVA 实现一种排序算法?【面试题详解】

2020-12-7 14:55:55

'); })();