0

可能重复:
为什么要首选 Java 类的接口?

我在一本书中读到公开实现的风格很差,所以:

好的:Set s = new HashSet( );

公平的:HashSet s = new HashSet( );

你能解释这是为什么吗?

4

1 回答 1

0

您应该始终对接口而不是实现进行编程。这允许松散耦合。
例如,如果您在第一种情况下替换HashSet为 a ,您的代码将不会受到影响。TreeSet将这种变化与第二种情况进行比较。
因此,只要客户端代码使用接口而不是具体类型,您就可以在不影响客户端代码的情况下切换实现。

于 2012-11-03T20:52:48.360 回答