深入淺出UML類圖(五)
例項分析3——售票機控制程式
某運輸公司決定為新的售票機開發車票銷售的控制軟體。圖I給出了售票機的皮膚示意圖以及相關的控制部件。
圖I 售票機皮膚示意圖
售票機相關部件的作用如下所述:
(1) 目的地鍵盤用來輸入行程目的地的程式碼(例如,200表示總站)。
(2) 乘客可以通過車票鍵盤選擇車票種類(單程票、多次往返票和座席種類)。
(3) 繼續/取消鍵盤上的取消按鈕用於取消購票過程,繼續按鈕允許乘客連續購買多張票。
(4) 螢幕顯示所有的系統輸出和使用者提示資訊。
(5) 插卡口接受MCard(現金卡),硬幣口和紙幣槽接受現金。
(6) 印表機用於輸出車票。
(7) 所有部件均可實現自檢並恢復到初始狀態。
現採用物件導向方法開發該系統,使用UML進行建模,繪製該系統的初始類圖。
參考解決方案:
參考類圖如下:
類說明:
類 名 | 說 明 |
Component | 抽象部件類,所有部件類的父類 |
Keyboard | 抽象鍵盤類 |
ActionKeyboard | 繼續/取消鍵盤類 |
TicketKindKeyboard | 車票種類鍵盤類 |
DestinationKeyboard | 目的地鍵盤類 |
Screen | 螢幕類 |
CardDriver | 卡驅動器類 |
CashSlot | 現金(硬幣/紙幣)槽類 |
Printer | 印表機類 |
TicketSoldSystem | 售票系統類 |
方法說明:
方法名 | 說 明 |
Component 的init()方法 | 初始化部件 |
Component 的doSeltTest()方法 | 自檢 |
Keyboard的getSelectedKey()方法 | 獲取按鍵值 |
ActionKeyboard的getAction()方法 | 繼續/取消鍵盤事件處理 |
TicketKindKeyboard的getTicketKind()方法 | 車票種類鍵盤事件處理 |
DestinationKeyboard的getDestinationCode()方法 | 目的地鍵盤事件處理 |
Screen的showText()方法 | 顯示資訊 |
CardDriver的getCredit()方法 | 獲取金額 |
CardDriver的debitFare()方法 | 更新卡餘額 |
CardDriver的ejectMCard()方法 | 退卡 |
CashSlot的getCredit()方法 | 獲取金額 |
Printer的printTicket()方法 | 列印車票 |
Printer的ejectTicket()方法 | 出票 |
TicketSoldSystem的verifyCredit()方法 | 驗證金額 |
TicketSoldSystem的calculateFare()方法 | 計算費用 |
【作者:劉偉 http://blog.csdn.net/lovelion】
相關文章
- 五分鐘讀懂UML類圖
- UML類圖
- 五分鐘看懂UML類圖與類的關係詳解
- Tomcat深入淺出——Filter與Listener(五)TomcatFilter
- UML類圖詳解
- 深入淺出FE(十四)深入淺出websocketWeb
- 深入淺出的webpack構建工具---PostCss(五)WebCSS
- 前端筆記之React(五)Redux深入淺出前端筆記ReactRedux
- 看懂UML類圖和時序圖時序圖
- UML類圖--類之間的關係
- UML類圖繪製例項
- UML設計:類圖說明及一步一步製作UML類圖
- 透過一份經典的UML類圖來學會如何讀懂UML類圖
- 淺讀-《深入淺出Nodejs》NodeJS
- 深入淺出mongooseGo
- HTTP深入淺出HTTP
- 深入淺出WebpackWeb
- 深入淺出HTTPHTTP
- mysqldump 深入淺出MySql
- 深入淺出——MVCMVC
- 深入淺出IO
- 深入淺出decorator
- ArrayList 深入淺出
- 深入淺出 RabbitMQMQ
- 深入淺出PromisePromise
- 深入淺出 ZooKeeper
- Flutter深入淺出元件篇---繼承關係圖Flutter元件繼承
- 團隊溝通利器之UML——類圖
- UML類圖介紹&類的六大關係
- Flutter | 深入淺出KeyFlutter
- 深入淺出 Laravel EchoLaravel
- 深入淺出理解ReduxRedux
- 深入淺出 Laravel MacroableLaravelMac
- flutter ScopedModel深入淺出Flutter
- 反射的深入淺出反射
- 《深入淺出webpack》有感Web
- 深入淺出Spring MVCSpringMVC
- 深入淺出Tomcat系列Tomcat
- [譯] 深入淺出 SVGSVG