内容来自《Java Web 程序员面试笔试宝典》

【出现频率】★★★★☆ 【学习难度】★★★☆☆

答案:面向接口编程就是程序与具体实现依赖于抽象,而不是程序与抽象依赖于具体实现。

只需要向外暴露经过的抽象的功能接口,就可实现不同业务层或业务系统之间的功能开发。

它的优点如下。

1)降低程序的耦合性能够最大限度地实现解耦。

2)增加了程序的扩展性和可维护性,面向接口编程将具体实现与调用分开,减少了各个类之间的相互依赖,当业务需求变化时,不需要对已经调用的系统或业务层进行改动,只需在当前业务层添加新的实现类就可以了,不再担心新改动的类对系统的其他模块造成影响。这也是开闭原则的体现。

3)有助于系统业务分层,使系统业务更清晰,有更好的可移植性。