zoukankan      html  css  js  c++  java
  • Effective Java 52 Refer to objects by their interfaces

    Principle

    1. If appropriate interface types exist, then parameters, return values, variables, and fields should all be declared using interface types. The only time you really need to refer to an object's class is when you're creating it with a constructor.

      // Good - uses interface as type

      List<Subscriber> subscribers = new Vector<Subscriber>();

    2. If you depend on any special properties of an implementation, document these requirements where you declare the variable.

      One caveat

      If the original implementation offered some special functionality not required by the general contract of the interface and the code depended on that functionality, then it is critical that the new implementation provide the same functionality.

    3. It is entirely appropriate to refer to an object by a class rather than an interface if no appropriate interface exists.

      Examples:

    • Value classes - String, BigDecimal
    • Class-based framework - java.util.TimerTask
    • Classes that implement an interface but provide extra methods not found in the interface - LinkedHashMap

      Summary

      In practice, it depends whether a given object has an appropriate interface. If it does, your program will be more flexible if you use the interface to refer to the object; if not, just use the least specific class in the class hierarchy that provides the required functionality.

  • 相关阅读:
    C# DataTable的用法详解
    Matlab绘图方法汇总
    java中Comparator的用法
    Java获取随机数
    jQuery动画高级用法——详解animation中的.queue()函数
    Oracle序列号详解
    jQuery验证框架教程
    二十四、按后退键退出Android程序
    同步synchronized用法
    jQuery 复选框全选反选
  • 原文地址:https://www.cnblogs.com/haokaibo/p/refer-to-objects-by-their-interfaces.html
Copyright © 2011-2022 走看看