这违背了接口的目的。如果你只打算有一个实现,它也可能是具体的。
接口意味着由多个类实现。这使您可以切换实现,而不必担心它们的实现细节。例如,接口最常见的用途是与集合框架一起使用,特别是List
、Set
和Map
。
// Hides the implementation details of ArrayList within a List variable
List<String> strs = new ArrayList<String>();
// Hides the implementation details of LinkedList within the same List variable
strs = new LinkedList<String>();
// All code using strs is agnostic to what kind of list it is (mostly)
strs.add("Hello, Dolly");
System.out.println(strs.get(0));
接口主要体现了两个 OOP 概念:封装和多态。如果您不打算使用界面来完成这两件事之一,请不要使用界面。只需使用具体(非抽象)类。在这一点上使用接口是多余的。
我能想到的唯一例外是当你想使用 Java 的Proxy
类时。只有这样才能接受 1:1 的接口:类比率,因为您必须有一个接口才能将实现包装在Proxy
实例中。