针对接口编程的概念
时间:2012-6-6
Java和C#程序员有时候会只理解"针对"接口编程的字面意思,因为接口在这两门语言中都是一种实际结构,他们仔细地将所有的重要功能都抽象出来放在许多接口中,然后他们的类会实现这些接口,这通常来说是一个好主意,但是这实际上并不是针对接口编程的原则所建议的实践,我们所说的概念是尽可能地针对最通用的类型进行编程--无论Car和Vehile最实际的类还是抽象接口,如果你能够使用交通工具类型来处理汽车类型的话,就别对汽车使用汽车类型,如果你能使用更加通用的类型来处理汽车的话,比如"移动物体",那样就更好了,正如我们以后会了解到的。
通过针对最通用的类型编程,比如使用交通工具为处理飞机,火车和汽车类型,我们就可以减少程序中的偶合总数,我们的程序中可能会只有40种了解交通工具类型的类,而不是42个类,每个都绑定汽车,轮船和飞机类。在我们不得不加入新类型的交通工具时,那剩下的两个类仍然有可能给我们增添麻烦,但是至少我们控制住了危险。实际上,如果我们不得不修改几个类的话,我们已经成功地把需要修改的类从固定不变的类中分享出来了,通过减少偶合累积起来的效果是,当我们的代码面临改动时,不太可能导致惊人的链状修改。