Java 建模: UML 工作簿, 第 2部分――序列图中的条件逻辑
2009-11-06 00:00:00 来源:WEB开发网核心提示: 清单 1. 带有条件表达式的方法\**ThisisamethodinaTellerclass**\publicvoidreceiveDeposit(Accountaccount,BigDecimaldeposit)throwsImproperDepositException{//Checktoe
清单 1. 带有条件表达式的方法
\** This is a method in a Teller class **\
public void receiveDeposit(Account account, BigDecimal deposit)
throws ImproperDepositException {
// Check to ensure the deposit is positive
if (deposit.compareTo(new
BigDecimal(0.0)) > 0) {
account.credit(deposit);
}
else {
throw new ImproperDepositException();
}
}
在分析阶段,您不是很关心细节,因此图只需要表明存款为正数。在常规序列图中,条件作为带有消息名的保护机制出现,位于水平调用箭头上方。这些保护条件用方括号括起,放在消息名的左侧,如图 3 所示。
图 3. 在分析期间添加的条件
上述方法和序列图之间的关系在图 4 中显现得更为清楚,我们在图 4 中看到了在设计阶段可能用到的更明确的图。当然没有显示全部方法:缺少了 else 子句。不过,图中消息箭头的语义规定只能在条件有效时发送消息。
图 4. 更明确的条件
可以通过在 Teller 类和 ImproperDepositException 之间添加另一个调用箭头来为 else 子句建模。在这个调用上会有一个与 if 相反的条件;在本例中,即存款必须小于等于 0。您不妨自己尝试为这个语句建模。
更多精彩
赞助商链接