在这个展示如何绘制类图的网页中,为什么关联的箭头是从订单指向客户,而不是从客户指向订单?
这是因为一个订单“拥有”对客户的引用。
在数据库中,这将是订单表中的外键,用于存储客户ID。
在代码中,您将在订单对象中存储与客户对象相关联的引用。因此,订单指向客户,而不是相反。
customer
有许多order
,并将订单的集合引用添加到客户中? - Iman Mahmoudinasab这可能会有帮助:
UML类图:指南:http://msdn.microsoft.com/en-us/library/dd409416%28VS.100%29.aspx
关联属性
是否可导航:如果仅对一个角色为真,则箭头出现在可导航方向中。可以沿这个方向读取关联。您可以使用此功能来指示链接和软件中的数据库关系的可导航性。
UML类图中的关联属性:http://msdn.microsoft.com/en-us/library/dd323862%28VS.100%29.aspx
如果一个角色是可导航的而另一个不是,箭头将出现在可导航方向上的关联上(7)。在UML中,关联端点具有布尔可导航属性。在这种情况下,指向顾客的导航设置为true,而指向订单的导航设置为false。
这样,模型的设计者表达了订单现在与哪个顾客相关联,但顾客无法直接访问他们的订单。
如果我们查看此模型的Java代码,可导航性更容易理解。例如,这种可导航性意味着Order具有类型为Customer的属性,而Customer没有集合属性来存储他/她的订单。
这是一种依赖关系,它是一种特殊的弱关联类型。这意味着为了使订单存在,必须在某个时间点上存在客户。在“订单”生命周期的某些阶段,可能不会强制执行此要求。