1
我有一个相当理论上的问题。我需要一个设计模式吗?
例如,我有一类对象 - 如表。这张桌子可以用不同的颜色 - 红色,蓝色和黄色着色。如果表格之前没有着色,结果很明显。否则,以下规则在玩:
red + yellow --> orange
blue + yellow --> green
red + blue --> purple
red + blue + yellow --> brown
什么是最好的和最优雅的方式来实现这一点?这种情况下有没有设计模式?我的变异可能是过于直白:
public class Table{
private boolean isRed;
private boolean isBlue;
private boolean isYellow;
public String colorRed(){
isRed = true;
if (isBlue && isYellow)
return "brown";
if (isBlue)
return "purple";
if (isYellow)
return "orange";
return "red";
}
//... the same for other colors
}
我的颜色,数字常量关联起来,并做简单的数学,而不是'if's ^^ – moonwave99
^我会向前走一步,将颜色与两个幂相关联。然后结果是一个简单的开关或地图查找数值由两个幂组成。 – StoryTeller
@ user2957954您是否正在寻找特定于此示例的模式或具有类似'if-else'语句的不一定与颜色有关的一般情况。这就是说,为什么你没有标志叫做“isBrown”或“isOrange”或“isPurple”呢?试图了解这里的要求。 – CKing