常量接口模式

    在一个软件系统中会使用一些常量,一种流行的做法是把相关的常量放在一个专门的常量接口中定义,例如:

public interface MyConstants {

    public static final double MATH_PI = 3.1415926;

    public static final double MATH_E = 2.71828;

}

    以下Circle类需要访问以上MATH_PI常量,一种方式是采用直接访问方式,例如:

public class Circle {
    private double r;//半径
    public Circle(double r){
        this.r = r;
    }
    public double getCircumference(){
        return 2 * r * MyConstants.MATH_PI;
    }
}

   在JDK1.5中因为了 import static 语句,它允许类直接访问另一个接口B或类B中的静态常量,而不必指定接口B或类B的名字,而且类A无须实现接口B或者继承类B。如下:

import static com.FinalInterface.MyConstants.*;
public class Circle {
    private double r;//半径
    public Circle(double r){
        this.r = r;
    }
    public double getCircumference(){
        return 2 * r * MATH_PI;
    }
}

    import static 语句既可以简化编程,又能防止Circle类继承并公开MyConstants中的静态常量。

原文地址:https://www.cnblogs.com/hr1997/p/5578263.html