Live软件开发面面谈
上QQ阅读APP看书,第一时间看更新

第1章 接口

在面向对象编程中,我们将问题拆分成一个个对象来实现,每个对象有其负责的功能,多个对象合作才能形成一个有用的系统。合作在代码中就表现为对象之间的引用和方法调用。调用者与被调用者的关系称为依赖。依赖关系意味着被调用者的变化可能影响和破坏调用者原本正常的运行。当系统变得越来越大,对象越来越多,牵涉方越来越广,持续的时间越长时,设计者就希望这样牵一发而动全身的影响尽可能地小。换句话说,就是希望能消除对象之间的依赖。调用者既要调用被调用者的方法,又不能产生对它的依赖,解决方法便是运用接口。

接口的理念在编程中由来已久,在Java、C#等主流语言中更是引入了原生的Interface结构,类库中也有大量现成的接口。然而单纯地使用、甚至定义接口,并不能达到消除依赖的目的。广为提倡的尽量使用接口编程,有什么好处?真正能消除依赖的针对接口编程又如何实现?它与常用的工厂模式、服务定位器模式和依赖注入有什么关系?最后,什么时候才有必要针对接口编程?在本章讨论这些问题的过程中,接口、依赖、若干设计模式、配置文件、惯例、元数据等概念的含义将得到深入的挖掘和思考。