面向对象分析与设计的全面指南
1. 用例的替代路径
在一个用例中,我们可能会遇到替代路径的情况。例如,在一个鸟类识别系统的用例里,存在主路径和替代路径,具体如下表所示:
| 主路径 | 替代路径 |
| — | — |
| 1. Alice 在喂鸟器处听到或看到鸟。 | 1.1 鸣禽识别器听到鸟鸣。 |
| 2. Alice 确定它们不是鸣禽。 | 2.1 鸣禽识别器识别出鸟鸣来自不想要的鸟。 |
| 3. Alice 按下遥控器按钮。 | 3.1 鸣禽识别器向喂食门发送关闭消息。 |
| 4. 喂食门关闭。 | |
| 5. 鸟放弃并飞走。 | 5.1 鸣禽识别器听到鸟鸣。
5.2 鸣禽识别器识别出鸟鸣来自鸣禽。 |
| 6. Alice 按下遥控器按钮。 | 6.1 鸣禽识别器向喂食门发送打开消息。 |
| 7. 喂食门再次打开。 | |
这两条路径并不完全相同。在主路径中,Alice 在按下遥控器按钮之前看到鸟放弃并飞走;而在替代路径中,鸣禽识别器必须等到听到鸟鸣后才会考虑再次打开喂食门。我们可以将这个用例拆分成两个不同的用例,这取决于个人需求,但要保持一致性。
2. 分析与设计的分离难题
对于程序员来说,尤其是初学者,很难将分析、设计和编码阶段分开,常常会忍不住同时进行这三个阶段。然而,除非程序非常简短(大约 10 行代码),否则这种做法通常不是一个好主意。更好的做法是从底层设计和编码中抽象出需求和架构思想。
面向对象分析和设计的分离尤其困难。在分析阶段,我们试图从面向对象的角度理解问题和问题域,这意味着我们在过程早期就开始思考对
超级会员免费看
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



