Oop 此代码中是否正确解释了导航性? 让我们考虑图书类和章节类> < /p> Class Book { private Chapter chapter; } Class Chapter { }
语句1:如果Oop 此代码中是否正确解释了导航性? 让我们考虑图书类和章节类> < /p> Class Book { private Chapter chapter; } Class Chapter { },oop,uml,composition,class-diagram,Oop,Uml,Composition,Class Diagram,语句1:如果书包含章节,这是一篇文章,因为销毁书也会销毁章节 语句2:由于书籍与章节相关联并了解该章节,因此它也可以是可导航性 所以,这两条语句都正确吗?我知道语句1是正确的,但我不确定语句2是否准确。有组合和组合 同一术语“组合”用于指非常不同的事物: ,这是一种面向对象技术,使一个对象由多个其他对象和值组成 ,这是一种关联,其中一个对象一次最多可以是一个复合对象的一部分,并且复合对象负责组件的存在和存储。所以这是一个独家所有权 顺便说一句,Wikipedia的文章对于对象组合的UML表示
书
包含章节
,这是一篇文章,因为销毁书
也会销毁章节
语句2:由于书籍
与章节
相关联并了解该章节,因此它也可以是可导航性
所以,这两条语句都正确吗?我知道语句1是正确的,但我不确定语句2是否准确。有组合和组合
同一术语“组合”用于指非常不同的事物:
- ,这是一种面向对象技术,使一个对象由多个其他对象和值组成
- ,这是一种关联,其中一个对象一次最多可以是一个复合对象的一部分,并且复合对象负责组件的存在和存储。所以这是一个独家所有权
书籍
和一个组件对象章节
(提示:使其成为一个容器,以使示例更真实)
不能保证它是UML组合:例如,如果此代码将在Java中实现,则书籍
可以有一个私有的章节
。但是书籍
的某些方法,比如getChapter()
,可能会将私有的章节
泄漏到另一个对象。由于java类是引用对象,因此本章最多不能保证存在于一个组合中,这是UML组合的UML需求。此外,在这种情况下,一章可能会在一本书中保留下来
建议:除非您确定独占所有权,否则请避免UML组合。如有疑问,建立一个简单的关联模型
适航性
与关联的类型是正交的。组合、聚合和简单关联存在可导航性。这意味着您可以轻松地从一个类的实例移动到另一个类的关联实例
就你而言:
- 您可以清楚地从复合
导航到组件书籍
(与章节
一样简单)书籍.章节
- 但是,没有证据表明存在向后导航:因此,当您有一个特定章节时,如果不知道它包含在哪本书中,就不可能找到相关的书