[阅读: 385] 2009-12-25 07:39:00
前一个版本是:
void process(Info info) {
if (has_nonActive_order()) {
shoot_or_fish_or_do_nothing();
} else {
arbi_or_shoot_or_fish_or_withdraw();
}
}
但这样的写法有一个问题,两个方法的执行实际是有前提条件的。一种方法是在这两个方法的入口处加断言,即防御式设计,并在方法的文档中说明该方法的调用有前提条件。
另一种方法就是像我给出的那样,在两个方法中判断前提条件,并在方法名中准确说明方法的意图。