UML:可见性指南

时间:2017-01-08 03:52:14

标签: uml

我正在阅读Real Time UML: Advances in the UML for Real-Time Systems (3rd Edition) 3rd Edition by Bruce Powel Douglass

在第10.5节讨论关于可见性的详细设计的指导。他说:

只能使语义上合适的操作可见。

  

本指南   旨在避免阶级之间的病态耦合。例如,   假设一个类正在使用容器类。应该是这样的   GetLeft()和GetRight()或Prev()和Next()?第一对使   实现可见(二叉树)而后一对   捕获基本语义(有序列表)。

我无法理解他在这里想说的是什么,尤其是最后一行。

有人可以阐述他的观点吗?

1 个答案:

答案 0 :(得分:2)

嗯,它有点夸张。 GetLeft-Right在其名称中包含从内部实现派生为二叉树的方向。因此内部数据结构在界面中是可见的。而事实并非如此。最好将这些知识保存在内部有几个原因。首先,外部世界一定不关心事情是如何实施的。其次,如果您决定以不同的方式实现它(例如通过环形缓冲区),如果到达缓冲区的右边界,则GetRight在内部视图中将是奇数。 PrevNext明确针对运营的业务/外部使用方面。