UML中的关联方式的区分

来源:互联网 发布:mac 数学公式 编辑:程序博客网 时间:2024/06/04 19:26

         对于类之间的关联性的关系中,依赖,关联,聚合,以及组合 这四种关联关系有时不是很能区分开来,特别是依赖,关联,聚合这三种(组合因为是最强耦合的关联关系,其实还是相对好辨别的),在此从网上找一个摘抄,记下来:

  

      组合:(composition):        关联藕合度 :最强          关键字: 生命周期

                     组合表示:contains-a关系,是一种强烈的包含关系。组合类负责被组合类的生命周期(两者生命周期相同),是非常强的藕合关系。
                     图像:   局部 <————————◆  整体


      聚合:(Aggregation) :    关联藕合度: 较强于一般关联

                     表示has-a的关系,是一种不稳定的包含关系。有整体与局部的关系,并且没有了整体,局部也可以存在,较强于一般 关联
                     图像:    局部  <————————◇ 整体

      关联: (Association) :       关联藕合度: 一般

                       对象之间一种引用关系, 这种关系通常使用类的属性表达。关联又分为一般关联,聚合关联与组合关联
                     图像:      被动方  < ————————— 主动方

     依赖: (Dependency)       关联偶合度:最弱    

                    对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量,函数参数,返回值建立的对于其他对象的调用关系。
            一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。
                   图像:             被动方< - - - - - - - - - - - - - - 主动方


        箭头都是  主动方 指向  被动方
        参考: http://www.uml.org.cn/oobject/201104212.asp  讲得很不错的