zoukankan      html  css  js  c++  java
  • 第五十二:通过接口来引用对象

    第四十条中有一个建议:应该使用接口而不是类作为参数的类型。更一般的地讲,应该优先使用接口而不是具体实现类来引用对象。

    如果有合适的接口类型存在,那么对于参数,返回值,变量和域来说,就都应该使用接口类型进行声明。

    如果你养成了使用接口作为类型的习惯,你的程序将会更加灵活。

    如声明变量像这样:

    List<Apple>  list = new Vector<Apple>();

    而不是这样 Vector<Apple>  list = new Vector<Apple>();

    由于你使用了List来声明,你的变量在后面的阶段,后面的代码依赖于List接口,不会依赖于具体的实现类Vector类。

    这样你依据业务需求将具体的实现类更换成 ArrayList,而不会导致后面的代码编译出错。但是如果你后面的代码依赖

    与Vector类的某些特性,如同步策略,这是就不应该简单的将Vector更换为ArrayList。

    如果没有合适的接口存在,完全可以用类而不是接口来引用对象。例如值类,String和BigInteger。记住,值类很少

    会用多个实现编写。它们通常是final的,并且很少有对应的接口。使用这种值类作为参数,变量,域或者返回类型是

    再合适不过的选择了。更一般的讲,如果具体类没有相关联的接口,不管它是否表示一个值,你都没有别的选择,只有

    通过它的类来引用它的对象。Random类就属于这种情形。

  • 相关阅读:
    【西瓜书】周志华《机器学习》学习笔记与习题探讨(一)
    01-线性回归算法
    NumPy 字符串函数
    Numpy函数分类
    Excel一对多查询(index+small+if)
    支付机构MRC模
    数据分析方法论
    窗口函数/解析函数
    数据分析
    底层逻辑
  • 原文地址:https://www.cnblogs.com/wangliyue/p/4514649.html
Copyright © 2011-2022 走看看