
偏好将接口作为引用类型:
如果存在合适的接口,您应该通过它引用对象而不是具体的类。
这适用于参数、返回值、变量和字段。
使用接口时的灵活性:
使用接口允许您更改实现而不影响代码。
示例:从 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 类的示例
ShopNum1拥有强大的网店促销模块,里面就包括商品团购、捆绑销售、品牌专卖、积分换购、优惠券促销、打折促销等众多促销功能,通过合理的组合使用,能帮助商家更好的提高消费者的忠诚度,有效发展新用户,从而带来订单数量的提升。 ShopNum1通过对网店系统软件本身的众多细节优化,有效提升了各主要搜索引擎对其收录的友好程度,从而帮助商家通过搜索引擎带来更多的直接有效客户,以达到提升订单销量的目的。 强
string str = "hello";
使用框架基类的示例
OutputStream output = new FileOutputStream("file.txt");









