在考虑组合时的UML图中。我们应该在逻辑或实现意义上使用它吗?这两个术语的例子:
从上图中,哪个案例显示了作文的正确用法? 注意:如果这两种情况都不好,请建议其他方式来显示国家和机场之间的关系。
答案 0 :(得分:2)
我认为这是强烈的" UML意义上的不组合"那个词。
来自wikipedia:
复合对象与组件之间的关系是强有力的“有”关系,因为复合对象取得组件的所有权。这意味着复合材料负责组件的创建和销毁。
机场不会创建国家/地区(在IT意义上,"国家"对象也不负责提供/创建"机场"对象)
从这个意义上说,你正在寻找一个协会;我认为第一个更合适(在"一般")。但核心方面是:您的模型必须表达 您的域的特定要求。换句话说:两种解决方案都是有效的;它在很大程度上取决于选择的背景。换句话说:你选择一个可以帮助你解决问题的那个!
答案 1 :(得分:0)
这取决于您尝试构建的最终模型。
如果您的模型将国家/地区作为头等对象或实体包含在内,那么显然国家/地区包含机场。如果国家/地区是机场的属性(更恰当地说是机场位置的属性),则将其建模为此类型。
除非你有充分的理由将国家建模为实体,否则我会选择该属性,因为边界可以改变,机场可以改变国家。
换句话说,这个问题没有明确的答案,要么可以根据你的最终目标发挥作用。
答案 2 :(得分:0)
如果我可以建议: 比照UML规范的第9.5.3节(2015年3月):
Composite:表示Property是复合聚合的,即复合对象负责组合对象的存在和存储(参见11.2.3中部件的定义)。
和
复合聚合是一种强大的聚合形式,需要将一个零件对象包含在最多一个复合材料中 一次一个对象。如果删除了复合对象,则会删除作为对象的所有零件实例。
对我来说,实现和逻辑问题更多的是关于db模型的问题。但也许我错了。
如果我必须做出选择,我将只设计实施案例。
答案 3 :(得分:0)
你可以说机场是一个国家的一部分,换句话说就是对它负责。因此从业务角度来看,第二种方法是正确的。表明"知识"从机场的角度来看,你可以在钻石之前添加一个指向国家方向的空心箭头。
无论采用何种方法,您想要建模的第一个图表都是错误的。通过该图表,每个机场将负责一个国家,因此每个机场将位于不同的国家。