论坛首页 综合技术论坛

聚合?关联?

浏览 4847 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-03  

小弟新学UML,被其中的关联关系,聚合,组合关系搞得头大。

如下:

在一个简易的用户定单的设计中。有类:User,Order,Goods,Address,在开始的设计中,考虑关系如图:

后来感觉不妥,Address与Order之间,应该不存在关联关系。而Address应该为类User的值类型。所以修改为:

而修改后,另一个问题又出现。那就是,在Order与Goods之间,是用聚合关系呢,还是用单身关联。如下:

想请问各位大侠,在后面两个图中。用哪一种关系(聚合?关联?)好一点。还请给一点指示

 

 

  • 描述: uml_3
  • 大小: 16.5 KB
  • 描述: uml_2
  • 大小: 15.6 KB
  • 描述: uml_1
  • 大小: 12.9 KB
   发表时间:2008-10-03  
聚合更好

0 请登录后投票
   发表时间:2008-10-04  
这位大哥说用聚合哦!
聚合是“has a”,可是在这个地方,我弄不清,Order has Goods 对不对,
物品是定单的一部分,这应该是正确的,但定单与物品也应该是相互独立的。
所以他们的关系我有点分不清了!
0 请登录后投票
   发表时间:2008-10-06  
我的观点:
1、Order不直接与Goods发生关系,应该是Order聚合OrderItem,然后OrderItem再关联到Goods。

2、Order应该关联一个Address,或者Address是Order的一个属性,因为订单一般要发送到某个地方,而这个地方不一定是用户的地址,可能是发给朋友的,也可能是发送到一个临时地址。
0 请登录后投票
   发表时间:2008-10-06  
谢谢silentlakeside兄,明白了!
0 请登录后投票
   发表时间:2008-10-08  
聚合是主体和部分的关系,组合不光是主体和部分的关系,并且主体掌握着部分的生命周期,是比聚合更强的关联关系,我是这么理解的
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics