这是关于最佳实践/风格的问题.
我有一个Printer类,可以打印出不同颜色的元素.使用Enum作为输入是否正确:
public class Printer {
public enum Color{RED,GREEN,BLUE}
public void print (Color color){
MyElement myElement = new MyElement();
switch (color) {
case RED:
myElement.setColor("#xxxxxx");
break;
case GREEN:
myElement.setColor("#xxxxxx");
break;
case BLUE:
myElement.setColor("#xxxxxx");
break;
}
myElement.print();
}
}
然后从另一个类中调用该方法,如下所示:
Printer p = new Printer();
p.print(Printer.Color.RED);
…或者将值添加到枚举中会更好:
public class Printer {
public enum Color {
RED("#xxxxxx"),GREEN("#xxxxxx"),BLUE("#xxxxxx");
private final String hex;
Color(String hex){
this.hex = hex;
}
public String getHex(){
return this.hex;
}
}
public void print (Color color){
MyElement myElement = new MyElement();
myElement.setColor(color.getHex());
myElement.print();
}
}
…或者根本不使用枚举,只使用普通字符串?