导出常量的几种方式 - - 接口只用于定义类型
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; // } // } //总结:接口应该被用来定义类型,不应该用来导出常量}