Java 这两个例子中哪一个是更好的代码设计?
示例#1Java 这两个例子中哪一个是更好的代码设计?,java,swing,coding-style,Java,Swing,Coding Style,示例#1 public void mouseClicked(MouseEvent e) { if (isShowParameters) isShowParameters = false; else isShowParameters = true; ParametersWindows.getInstance().setVisible(isShowParameters); } 示例#2 public void mouseClicked(Mo
public void mouseClicked(MouseEvent e) {
if (isShowParameters)
isShowParameters = false;
else
isShowParameters = true;
ParametersWindows.getInstance().setVisible(isShowParameters);
}
示例#2
public void mouseClicked(MouseEvent e) {
isShowParameters = !isShowParameters;
ParametersWindows.getInstance().setVisible(isShowParameters);
}
第二个更清晰、更符合逻辑。我更喜欢
isShowParameters=!Isshow参数代码>因为它比较短。较短的程序更容易理解和维护。但是你那一大堆无与伦比的右括号是怎么回事?这似乎是一种糟糕的编码风格
ParametersWindows.getInstance().setVisible(!isShowParameters);
)()
更新
只有在不需要更新字段本身时才有效。还有第三个选项:
isShowParameters ^= true;
或者更紧凑地说:
ParametersWindows.getInstance().setVisible(isShowParameters ^= true);
在这两种情况下,缩进都很糟糕。应该是isShowParameters^=true代码>这个问题不清楚。您是在问如何使每个示例更高效,还是两个示例中的哪一个更适合代码设计?还是ParametersWindows.getInstance().setVisible(isShowParameters=(isShowParameters==true)?false:true
甚至参数swindows.getInstance().setVisible(isShowParameters=(isShowParameters)?false:true
@Petar,该构造在likeb[i++]^=true的情况下也很有用代码>或b[calcIndex(p)+base]^=true代码>否则需要将索引保留在临时变量中。这不起作用b/c它不会更改字段isShowParameters
字段值不会更改。在第二次按下的形式消失了。哦,我明白了。假设它在其他地方使用,那么我将使用选项#2。您可以始终执行参数swindows.getInstance().setVisible(isShowParameters=!isShowParameters)代码>,尽管这可能会让人困惑,因为=代码>看起来像=代码>漂亮。比isShowParameters^=true更可读,比三元版本更短。