接口只用于定义类型(19)

1、类实现了接口,接口就充当引用类实例的类型

  • 为了其他任何理由定义接口是不恰当的

2、常量接口不满足1、是对接口的不良使用

  • 类实现常量接口,对于类没有任何价值
  • 非final 类实现常量接口,所有子类命名空间都会被污染

3、应该使用枚举类或者不可实例化的工具类(构造函数私有化)

  • 工具类导出的常量,用静态导入机制,避免使用类名

4、接口只被用来导出类型,不要用来导出常量

5、Static Import机制常常被直译成“静态导入”

  • “静态导入”或者“静态成员导入”

  • 精准导入静态变量、静态方法
  • 可以导入一个类里的一切被static修饰的东西,包括变量、常量、方法和内类
import static java.lang.Math.PI;

import static java.lang.Math.sin;

//声明遇到来历不明的成员时到java.lang.Math中去寻找
//并不是把这个类或接口里的所有静态成员全部导入
import static java.lang.Math.*;
  • 如果两个语句都是精确导入的形式,或者都是按需导入的形式,那么会造成编译错误。
  • 如果一个语句采用精确导入,一个采用按需导入的形式,那么采用精确导入的形式的一个有效。
  • 导入的东西还可能和本地的东西相冲突,这种情况下的处理规则,是“本地优先"
  • 都会被编译器打回原型。因此在性能方面,Static Import没有任何影响
  • 增加了阅读理解的麻烦
  • 可能给维护工作带来一定的困扰

猜你喜欢

转载自my.oschina.net/u/3847203/blog/1825644