我有两个代码可以告诉我哪种方法更好,为什么。
方法1 -
if (("Male").equalsIgnoreCase(input.getSex()) || ("Female").equalsIgnoreCase(input.getSex())) {
// do something
}else{
//do somethong
}
方法2 -
String tempSex = input.getSex()
if (("Male").equalsIgnoreCase(tempSex) || ("Female").equalsIgnoreCase(tempSex)) {
// do something
}else{
//do somethong
}
这是一个条件,在我的代码中,我有很多类似于这个的条件。在某些情况下,我必须与更多的字符串进行比较。
这是为每个条件定义变量的好方法,还是我可以使用getter和setter?
答案 0 :(得分:1)
这两种方法在性能方面基本相同,假设getSex函数是一个微不足道的getter(如果getSex很复杂或涉及更改类中的其他一些状态,则这两位代码不等效)。
从样式的角度来看,我更倾向于第一个,因为额外的局部变量对代码流有点混淆。
但是,如果您的主要目的是使用此表单的代码来验证合法输入(从您的示例中显示)我会尝试创建一个方法
boolean input.isSexValid()
封装了使代码重复性更低,可读性更强的功能。
答案 1 :(得分:-1)
强烈论证这主要是基于意见的,但是:
我投票方法2。
如果吸气剂很慢(比如必须转到数据库)怎么办?您有一个DB的冗余往返。