给第一个类进行处理,若第一个类不能处理或处理完它能处理的请求的相关部分之后,将请求发送给其后继,依次类推,知道请求被最后一个类处理完成。同样的方法还体现在JudgeAmount中,根据所操作金额的范围不同,对金额所产生的费用作不同的处理。
5.2 用例功能的类图设计
17
5.2 系统交互模型—顺序图 5.2.1 系统取款模块的顺序图
用户插入磁卡读卡机屏幕输入设备验证账号账户管理点钞机打印机事务管理显示输入密码请求()输入密码要求输入密码传递密码请求验证密码合法性密码合法要求输出事务类型显示选择事务类型请求选择取款请求传递取款请求询问取款金额传递取款金额显示输入取款金额确认输入取款金额请求验证取款金额合法性验证取款金额合法更新账户余额信息出钞取钞询问是否打印凭据输出是否打印凭据请求出钞选择打印确认打印请求打印请求打印打印取出打印数据询问是否进行其他业务输出是否进行其他业务
18
5.2.2 系统转账模块的顺序图
用户插入磁卡读卡机屏幕输入设备验证账号账户管理打印机事务管理显示输入密码请求()输入密码要求输入密码传递密码请求验证密码合法性密码合法要求输出事务类型显示选择事务类型请求选择转帐请求传递转帐请求询问收帐方帐户传递收帐方帐户显示输入收帐方帐户输入收帐方帐户请求验证帐户是否存在验证帐户存在显示输入转帐金额输入转帐金额询问转帐金额传递转帐金额请求验证转帐金额是否合法验证取款金额合法询问是否打印更新账户余额信息输出是否打印选择打印确认打印请求打印请求打印打印取出打印数据询问是否进行其他业务输出是否进行其他业务
19
5.3 系统设计类图
User-contactno : long-address : char-mailaddress : char+main()**Bank-address : char-bankname : char-bankid : int+infointeraction()-结束1-结束2Tpye-结束-结束43-typename : char-typeno : int-typefeature : char+newtype()1*+deletetype()+altertype()结束1结束4结束26Account-accountoverage : long-cardtype : char-accountbankbelong : char-openaddress : char-username : char-userid : long-password : char-withdrawaltimes : int-cardno : long-iflocked : bool+withdrawal()+transfer()+changpassword()+saveaccount()+checkaccount()ScreenShow-length-width+showlogin()+showfunction()+showwithdrawal()+showtransfer()+showchangepassword()+showoverage()结束5PrintList-transactionamount-transactiondate+printlist()结束3JudgeRemote-withdrawalrequest : bool-transferrequest : bool-location : char-openaddress : char+judgerequest()JudgeType-typename : char-typeno : int-typefeature : char-cardtype : char-cardno : long+judgerequest()JudgeFee-withdrawalrequest : bool-transferrequest : bool+judgerequest()Atm-atmno : int-atmtype : char-atmbankbelong : char-location : char-date : char-moneyaviable : long+aviableoperation()JudgeBank-withdrawalrequest : bool-transferrequest : bool-accountbankbelong : char-atmbankbelong : char+judgerequest()JudgerWithdrawalWithdrawalRequest-withdrawrequest : bool-withdrawalamount : int-withdrawalrequest : bool-withdrawaldate : char-withdrawalamount : int结束19-withdrawaltimes : int-withdrawaldate : char结束20-withdrawaltimes : int-transferrequest : bool-transferamount : long-transferdate : char-transfertimes : int结束22+judgerequest()TransferRequest-结束6*1-结束7*-结束8JudgeAmount结束21-transferrequest : bool-transferamount : long-transferdate : char-transfertimes : int-withdrawalamount : int-withdrawaldate : char-withdrawtimes : int-withdrawalrequest : bool-cardtype : char-openaddress : char-accountoverage : long-withdrawaltimes : int结束7+withdrawal()CheckAccount结束12Proxy结束8-bankname-account+withdrawal()+transfer()+changpassword()+saveaccount()结束14+checkaccount()-cardno结束-password11-userid-username+checkaccount()结束13SaveAccount-date : char-withdrawaltimes : int+updateaccount()JudgeTime-withdrawalrequest : bool-withdrawaldate : char-transferrequest : bool-transferdate : char-date : char-withdrawaltimes : int-transfertimes : int+judgerequest()1-结束5-transferrequest : bool-transferamount : long-transferdate : char-transfertimes : int+judgerequest()Transfer结束9-transferamount : long-transferdate : char结束15结束16-transfertimes : int-transferrequest : bool-withdrawalamount : intChangePassWord结束10-withdrawaldate : char-orginalpassword : char-withdrawaltimes : int-newpassword1 : char-withdrawalrequest : bool-newpassword2 : char+transfer()+changpassword()AmountRange1-transferamount : long-transferdate : char-tansfertimes : int+judgerequest()AmountRange2-transferamount : long-transferdate : char-tansfertimes : int+judgerequest()AmountRange3-transferamount : long-transferdate : char-transfertimes : int+judgerequest()
20

