庄生晓梦

庄生晓梦迷蝴蝶

博客园 首页 新随笔 联系 订阅 管理

package com.classinteface.finalinterface;

/**
* 常量接口模式 java.io.ObjectStreamConstants
* 这种模式会导致实现其的类将实现细节泄露到该类导出的API中
* 如果将来的发行版本改动了这个类,它不再需要常量接口中的常量,却依然必须实现这个接口以保证二进制兼容性
* @author JacXuan
*
*/

public interface PhysicalConstants {
    static final double AVOGADROS_NUMBERS = 6.02214199e23;
    static final double BOLTAMANN_CONSTANT = 1.380653e-23;
    static final double ELECTRON_MASS = 9.10938188e-31;
//导出常量
//1.如果这些常量不与现有的类或者接口密切相关,就把这些常量添加到这个类或者接口中
//  private PhysicalConstants(){
//      
//  }
//  static final double AVOGADROS_NUMBERS = 6.02214199e23;
//  static final double BOLTAMANN_CONSTANT = 1.380653e-23;
//  static final double ELECTRON_MASS = 9.10938188e-31;
//2.如果大量利用工具类导出的常量,可以利用静态导入的机制,避免用类名来修饰常量名jdk>1.5
//  public class Test{
//      double atoms(double atoms){
//          return AVOGADROS_NUMBERS * mols;
//      }
//  }
//总结:接口应该被用来定义类型,不应该用来导出常量

}

posted on 2017-03-05 01:29  qwop  阅读(229)  评论(0编辑  收藏  举报