6
了解“编程接口”
我遇到过很多术语“编程为接口而不是实现”,我想我有点理解它的意思。但是我想确保我了解它的好处以及可能的实现。 “对接口进行编程”意味着,在可能的情况下,应该引用一个类的更抽象级别(一个接口,抽象类,有时甚至是某种超类),而不是引用一个具体的实现。 Java中的一个常见示例是使用: List myList = new ArrayList();代替ArrayList myList = new ArrayList();。 我对此有两个问题: 我想确保我了解这种方法的主要好处。我认为好处主要是灵活性。将对象声明为更高级的引用,而不是具体的实现,可以在整个开发周期和整个代码中提供更大的灵活性和可维护性。它是否正确?灵活性是主要好处吗? 还有更多的“编程接口”方法吗?还是“将变量声明为接口而不是具体的实现”是此概念的唯一实现? 我不是在谈论Java构造接口。我说的是OO原则:“编程为接口,而不是实现”。按照这个原理,世界“接口”是指一个类的任何“超类型” -接口,抽象类或简单的超类,它比更具体的子类更抽象,更不具体。