81,122
社区成员




double getPay(){
if(booleanStatus.getIsA()) {
return getPayIsA();
}
else if(booleanStatus.getIsB()) {
return getPayIsB();
}
else if(booleanStatus.getIsC()) {
return getPayIsC();
}
else {
return getPaydefault();
}
}
double getPay(){
if(booleanStatus.getIsA) {
return getPayIsA();
}
else if(booleanStatus.getIsB) {
return getPayIsB();
}
else if(booleanStatus.getIsC) {
return getPayIsC();
}
else {
return getPaydefault();
}
}
double getPay(){
if(isA) {
return getPayIsA();
}
else if(isB) {
return getPayIsB();
}
else if(isC) {
return getPayIsC();
}
else {
return getPaydefault();
}
}
/**
* Created by 日知己所无 on 2015/03/13.
*/
public class GetPay {
private boolean isA;
private boolean isB;
private boolean isC;
/**
* 取得工资金额
*
* @return 工资金额
*/
double getPay() { // 【可以考虑把isA isB isC作为参数传递进来,以减少对其他变量的依存,降低耦合度,便于以后维护】
// 【原来的代码比较严重的问题是使用了不容易让人理解的A B C D这样的变量】
// 【所以上来要先询问一下面试的人:具体的含义,比如初级工程师,中级工程师,高级工程师,工程师以外的员工等,把名字先定好】
double result = 0.0; // 返回值:工资金额【一般来讲,给变量赋上初始值被视为比较好的编程习惯】
// 【如果需要考虑运行效率的话,对于if语句,一般要把最常用判断放在最前面】
// 【比如有5000名员工,其中4000名是中级工程师,如果需要快速运算,那么就要考虑把中级工程师那个判断移动到最前面】
// 【只要有这个意识就可以,具体怎么做可以询问面试官】
if (isA) { // 【对于if语句,后面的花括号是必须加的。不加虽然暂时没有问题,但是以后如果又追加代码时,很容易出现问题】
result = getA();
} else if (isB) { // 【不论是美观还是运行效率,else if都优于原来的写法】
result = getB();
} else if (isC) {
result = getC();
} else {
result = getD();
}
// 【这个例子相对还是比较简单,对于及其复杂的情况,可能得考虑把变量和方法放到一个数组中,然后根据查表法来提高代码的可读性和可维护性】
return result;
}
private double getA() {
return 0.0;
}
private double getB() {
return 0.0;
}
private double getC() {
return 0.0;
}
private double getD() {
return 0.0;
}
}
double getPay(){
if(isA) {
return getA();
}
else if(isB) {
return getB();
}
else if(isC) {
return getC();
}
else {
return getD();
}
}