我有一个名为ColorConstants的类,该类只是定义了整个应用程序中使用的许多public static final Color字段的类-可以轻松更改配色方案等。我想做的就是有两种方案:反转,不-倒。我想设置此类,以便根据方案/主题,相同的字段名称可以引用不同的颜色。而不是每次检查/获取必要的颜色。

我以前从未使用过enum,只是想知道它是否适合于此?
另外,我只是将字段设为非最终字段,并使用setAll(int theme)方法。

最佳答案

我不会在这里使用枚举。

我将创建一个包含所有颜色字段(非最终值)但没有值的类。并创建在构造函数中定义所有颜色的扩展类。

public abstract class ColorScheme
{
    public Color background;
    public Color foreground;
    public Color cursor;

}


现在创建ColorScheme的实现:

public class DarkColorScheme extends ColorScheme
{
    public DarkColorScheme()
    {
        background = new Color(0x111111);
        foreground = new Color(0xDDDDDD);
        cursor     = new Color(0xEEEEEE);
    }
}


现在,您可以使用如下的配色方案:

public ColorScheme colorScheme = new DarkColorScheme();


从现在开始,您可以创建额外的配色方案,并只需在新的配色方案上方的行中使用,一切都应该可以动态运行。

09-11 18:33