面向对象的 ATM 系统设计与实现
1. 案例研究介绍
现在,我们开启一个面向对象设计与实现的案例研究,目标是设计并实现一个面向对象的自动取款机(ATM)软件系统。此案例研究能让你获得简洁、节奏合理且完整的设计与实现体验。
在后续内容里,我们会运用统一建模语言(UML)执行面向对象设计(OOD)流程的各个步骤,同时将这些步骤与面向对象的概念相关联。在本部分,我们会使用六种常见的 UML 图来图形化呈现设计,后续还会对设计进行优化,最终用 Java 应用程序完整实现该 ATM 系统。
这并非简单的练习,而是一次完整的学习体验,最后会详细讲解实现设计的完整 Java 代码,让你初步了解行业中会遇到的实际问题。
2. 审视需求文档
设计过程始于一份需求文档,它明确了 ATM 系统的用途和必须具备的功能,在整个案例研究中,我们会频繁参考这份文档。
2.1 需求文档内容
- 一家本地银行打算安装新的 ATM,以便用户(即银行客户)进行基本金融交易。每个用户在银行只能有一个账户,用户应能查看账户余额、取款和存款。
- ATM 的用户界面包含:
- 屏幕:用于向用户显示消息。
- 键盘:接收用户的数字输入。
- 现金 dispenser:向用户发放现金。
- 存款槽:接收用户的存款信封。
- 现金 dispenser 每天初始装有 500 张 20 美元钞票。不过,由于本案例研究范围有限,这里描述的 ATM 某些元素与真实 ATM