接口作为引用类型的偏好:
如果存在合适的接口,您应该通过它引用对象而不是具体的类。
这适用于参数、返回值、变量和字段。
使用接口的灵活性:
使用接口允许您更改实现而不影响代码。
示例:从 LinkedHashSet 更改为 HashSet 或 TreeSet,只需更改构造函数即可。
何时不使用接口:
特定于实现的功能:
如果实现提供了接口不需要的东西(例如 LinkedHashSet 保证迭代顺序,但 HashSet 不保证)。
没有适当的接口:
某些类(例如 String 或 BigInteger)没有等效接口,必须直接使用。
基于类的框架:
示例:java.io包中的OutputStream是通过抽象类引用的,而不是接口。
特定于实现的方法:
示例:PriorityQueue 实现了 Queue,但 Queue 中没有 comparator() 方法。仅当您需要此额外方法时才使用该类。
益处:
使用接口使程序更加灵活和模块化,使您可以轻松更改实现而不破坏现有代码。
代码示例
很好的例子:使用接口作为类型
Sets = new LinkedHashSet();
坏例子:使用具体类作为类型
LinkedHashSets = new LinkedHashSet();
灵活性:更改实现而不影响代码
Sets = new TreeSet();
使用 String 等 Final 类的示例
String str = "Hello";
使用框架基类的示例
OutputStream output = new FileOutputStream("file.txt");
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3