软件理论很多很杂,而且有很多是借鉴了其它专业的理论。从软件工程的瀑布模型中知道,编码要依据详细设计来完成。判定树是系统分析和设计期的工具,但编码人员不一定每次都能从详细设计书中找到明确的判定树资料。
假定有下面的编码需求:有两个状态变量,每个变量有4种状态值,对两个状态的不同组合共有4种处理方式。可以进行下面的编码(Java例)。
//---------------------------------------------------------
public void main_deal(String st1,String st2) {
//取处理方式判断值
String strJudge = getJudge(st1,st2);
//依据判断值分别处理
if ("ret1".equals(strJudge)) {
sub_deal1();
} else if ("ret2".equals(strJudge)) {
sub_deal2();
} else if ("ret3".equals(strJudge)) {
sub_deal3();
} else if ("ret4".equals(strJudge)) {
sub_deal4();
} else {
final_deal();
}
}
private String getJudge(String st1,String st2) {
String ret = null;
//取处理方式判断值
return ret;
}
private void sub_deal1() {
//子处理1
}
private void sub_deal2() {
//子处理2
}
private void sub_deal3() {
//子处理3
}
private void sub_deal4() {
//子处理4
}
private void final_deal() {
//条件判断值之外的处理
}
//---------------------------------------------------------
如果程序的多个分支需要完成相同的工作时,不妨使用判定树思路将杂乱的功能理清,再编写出清晰易懂的代码。上面的例子比较直观,实际的应用可能存在许多不易理清的线索,需要透过现象看清本质。