您的位置:首页 > 其它

重构16-Encapsulate Conditional(封装条件)

2016-08-19 09:32 344 查看
当代码中充斥着若干条件判断时,代码的真正意图会迷失于这些条件判断之中。这时我喜欢将条件判断提取到一个易于读取的属性或方法(如果有参数)中。重构之前的代码如下:

public class RemoteControl {
private String[] Functions;//getter setter
private String Name;//getter setter
private int CreatedYear;//getter setter

public String PerformCoolFunction(String buttonPressed) {
// Determine if we are controlling some extra function
// that requires special conditions
if (Functions.length > 1 && Name == "RCA" && CreatedYear > new Date().getYear() - 2) {
return "doSomething";
}
return null;
}
}


重构之后,代码的可读性更强,意图更明显:

public class RemoteControl {
private String[] Functions;//getter setter
private String Name;//getter setter
private int CreatedYear;//getter setter
private Boolean HasExtraFunctions;

public Boolean getHasExtraFunctions() {
return Functions.length > 1 && Name == "RCA" && CreatedYear > new Date().getYear() - 2;
}
public String PerformCoolFunction(String buttonPressed) {
// Determine if we are controlling some extra function
// that requires special conditions
if (HasExtraFunctions) {
return "doSomething";
}
return null;
}
}


来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: