如何使用enum进行单例设计模式?

时间:2015-05-31 16:31:52

标签: java enums

据我所知,以下代码总是始终提供相同的实例,也无法修改,最好建议单/多线程使用。

enum Colors {
    RED, BLUE, GREEN;
}

但我想知道如何使用 enum 将单例模式应用于自定义类,我的意思是我们通常在初始化时返回实例。引用一个例子将会有很大的帮助。

1 个答案:

答案 0 :(得分:1)

您可以像在课堂上一样进行封装和初始化。

这是一个简单的例子:

public enum Color{
  INSTANCE(10, 30, 50);

  private int red, green, blue;  

  private Color(int red, int green, int blue){
     this.red = red;
     this.green = green;
     this.blue = blue;
  }

  public int getRed(){
     return red;
  }

  public int getGreen(){
     return green;
  }

  public int getBlue(){
     return blue;
  }
}

在这种情况下,您有枚举类型Color的线程安全单例实例。