ATM系统面向对象设计的实现
1. 引言
在之前的设计基础上,现在要将ATM系统的面向对象设计用Java实现。首先会展示如何将类图转换为Java代码,接着会利用继承和多态来优化设计,最后呈现完整的Java代码实现。通过这个应用的学习,能让我们接触到更接近实际工业应用的案例。
2. 开始编写ATM系统的类
2.1 可见性
在实现设计之前,需要考虑类的哪些属性和方法应该是公共的,哪些应该是私有的。通常,属性应该是私有的,而被类的客户端调用的方法应该是公共的。仅被同一类的其他方法作为“实用方法”调用的方法通常应该是私有的。UML使用可见性标记来建模属性和操作的可见性,公共可见性用加号(+)表示,私有可见性用减号(-)表示。以下是包含可见性标记的类图示例:
| 类名 | 属性 | 操作 |
| — | — | — |
| ATM | - userAuthenticated : Boolean = false | + authenticateUser() : Boolean |
| BalanceInquiry | - accountNumber : Integer | + execute() |
| CashDispenser | - count : Integer = 500 | + dispenseCash()
+ isSufficientCashAvailable() : Boolean |
| DepositSlot | | + isEnvelopeReceived() : Boolean |
| Screen | | + displayMessage() |
|