Способ сделать это - использовать интерфейс.
interface Colour
{
String getHex(); // or whatever a colour does
}
Затем вы можете объявить цвета по умолчанию:
enum DefaultColour implements Colour
{
RED("ff0000"),
BLUE("0000ff");
private final String hex;
DefaultColour(String hex) { this.hex = hex; }
@Override
public String getHex() { return hex; }
}
Затем, когда кто-то хочет добавить дополнительный цвет, ониможет реализовать тот же интерфейс:
class Gold implements Colour {
//...
}
или предоставить полный список:
enum AdditionalColour implements Colour {
YELLOW("..."),
GREEN("...");
//...
}
Я бы использовал интерфейс поставщика услуг для предоставления дополнительных цветов вво время выполнения.