网站公告列表

  没有公告

加入收藏
设为首页
联系我们
您现在的位置: 山东在线 >> 生活百问 >> 电脑互联网 >> 软件开发 >> 正文
  结合、聚合、组合、一般化及依赖关系 -软件研发           
结合、聚合、组合、一般化及依赖关系 -软件研发
作者:佚名 文章来源:不详 更新时间:2008-6-19 16:03:25
UML2.0(o'reilly)一书中有提到,如果你发现自己在说一个类别有一部份是另一类别的对象,此关系很可能是关连、聚合、或合成。如果你发现自己在说一个类别是另一个类别的型别,你可能要改用一般化。这是啥意思呢?有点不懂!

依赖(dependency)要如何解释呢?书本说是短暂使用,那关联,聚合,合成都不能短暂拥有吗?如果不能,逻辑上如何解释较妥呢?谢谢!

我的回复:
结合关系(association)是一种静态结构上的关系,换言之,它偏向于数据关系。所以,两类别之间放置结合关系,同时意味着这个关系必须被保存起来,这也是为何UML类别图中最常出现的是结合关系。比方说,顾客跟订单之间的关系,就会使用结合关系,因为我们希望系统可以保存两者之间的关系。

结合关系的两端通常是平等的,如果要表达整体-部分(whole-part)意涵时,就可以改用聚合关系(aggregate,空心菱形),或是组合关系(composite,实心菱形)。特别注意的是:

1. 聚合与组合都是一种结合关系,只是额外具有整体-部分的意涵。

2. 聚合关系中,整件(whole object)不会拥有部件(part object)的生命周期,所以整件删除时,部件不会被删除。再者,多个整件可以共享同一个部件。

3. 组合关系中,整件拥有部件的生命周期,所以整件删除时,部件一定会跟着删除。而且,多个整件不可以同时间共享同一个部件。

至于,实务上倒底要采用聚合关系还是组合关系,不决定于真实,而是决定于企业规则。比方说,订单与细项之间的关系,通常采用组合关系,一旦订单被删掉时,底下的细项也会同时被删除。但是,这是比较常见的企业规则,试想,或许有些领域的交易是可以拆单的,订单被取消时,原先的细项可以被并入别的订单中,若是如此,就适合使用聚合关系了。

一般化(generalization)是两类别之间的关系,不同于上述的结合、聚合或组合关系,它是一种分类关系。或者说,针对某一概念或事物,其个体可区分为一般类(父类别)与特殊类(子类别)时,两者之间便可以放置一般化关系。举例来说,我们会说无线鼠标和有线鼠标(它们都是特殊类别/子类别)都是一种鼠标(一般类别/父类别)。

依赖关系又与上列几种关系不同,先说明为何许多UML书上会说它是短暂关系,其实这是相对于结合(聚合、组合)关系,前面有我们有提到,结合关系是一种静态结构关系,是需要被保存下来的。相较之下,依赖关系并不需要被储存起来,所以才会说它是短暂关系。

最常见的依赖关系(dependency)是一种使用关系,譬如顾客类别里头有一个计算年度交易总额操作好了,在这个操作中必须连到一群当年度的交易对象,并且呼叫交易对象取得交易金额进行累加,才能计算出年度交易总额。在这个例子中,顾客类别与交易类别就有短暂的依赖关系。

再度提醒的是,到底使用结合、聚合、组合、一般化或依赖关系,无关乎真实现象,而是与企业规则,或者与设计者想要表达什么样的设计有关,所以两类别之间具有什么样的关系并无固定答案,端看设计而定。

- 邱郁惠@CSDN''s UML Blog - CSDNBlog
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 你可能想要关注的其它信息
     喝茶有什么好处
     各种不同的水果对人体分别有哪些…
     什么东西含钙最高
     大豆及其制品的营养特点
     怎样可以胖点?
     吃香蕉到底是会发胖还是减肥
     哪些食物是碱性的
     西红柿减肥的时候能吃么
     饭后最该知道的几件事
     加班熬夜族的饮食误区
     盲目进补对身体有害无益
     滋润食疗做个水嫩女人
     过完肥年也可不增肥
     一周在外就餐7次有生命危险
     吃到意犹未尽时最健康
     十种食物给你好睡眠
     女性贫血的经典食疗方
     蔬菜煮熟食用更有营养
     血型不同饮食也不同
     完美胸形 用食品缔造…
     男子性福八种药膳做法(组图)
     比营养比热量,馒头米饭大PK
     吃什么不得高血脂?
     防感冒喝点果汁醋
     一周在外就餐7次有生命危险(图)
     七种最难留住的营养
     冬季进补,百变不离汤水(图)
     男女冬季健康饮食大全(组图)
     “抗癌蔬菜排行榜”谁是冠军?
     不同颜色水果有不同功效 橘色提高免疫力…
     心血管病人多吃三种食物
     牛奶加糖煮会引起腹泻
     巧用牛奶来“食疗”
     7 个喜爱巧克力的理由(图)…
     给头发吃点水果
     眼疾患者“食疗菜单”(图)
     一个具攻击性的年轻人食谱(图)
     给“错误食物搭配”平反(图)
     【破竹寺】直观体验装备转档规则
     大话作坊你了解多少
     小编推荐:帐号防盗攻略
     『客栈新闻』新五环-新体会
     打造大闹,重铸经典
     大话每天必做二三事之新人必看
     有关各类“暴点”汇总
     如何炼造血攻女人
     4大攻法宠
     6坐骑有鸡肋存在吗?
    【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目
    最 新 热 门
    相 关 文 章
    30岁IT人价值在哪里?-软…
    程序结构中的两点重要元…
    企业信息化:用IT解决沟…
    从中国男足看项目管理 -…
    WebSphere 多媒体课件:…
    解析分布式访问控制方法…
    UML(统一建模语言)死亡的…
    恼人不休的问题:什么是…
    DSL:单一语言开发的终结…
    回顾成长历程,顿悟思考…
    山东在线 Copyright@2006-2008 鲁ICP备07018514号 中国网通集团公司山东省分公司