可能重复:
Why should the interface for a Java class be prefered?
我在一本书中读到,揭露实现的风格很差,所以:
好:Set s = new HashSet( );
公平:HashSet s = new HashSet( );
你能解释一下这是为什么吗?
答案 0 :(得分:0)
您应始终编程到接口而不是实现。这允许松耦合
例如,如果在第一种情况下将HashSet
替换为TreeSet
,则代码不会受到影响。将这种变化与第二种情况进行比较
因此,只要客户端代码使用接口而不是具体类型,您就可以在不影响客户端代码的情况下切换实现。