• 【菜鸟也疯狂UML系列】——浅析UML四种关系


        在UML中。关系是很重要的。它抽象出对象之间的联系,让对象构成某个联系起来的结构。以下将简要分析一下UML中的四种关系:关联。依赖,泛化,实现。


       一、举例罗列


        1、关联(Association)

        关联是用来连接有结构关系的对象,能够连接同样类或者不同类。也能够是双向关联和单向关联。

        举例说明:
        
        单向关联:人打开电视机。是一个单向关联。


      


        双向关联:人和公司的关系,人是公司的雇员,公司是人的雇主。(1个公司有0或者n个雇员)

        

       (1)聚合(Aggregate)


        表示的是实体对象之间的关系,表达总体与部分的关系,总体由部分构成,可是此关系不是强依赖关系,也就是说,部分不会依据总体的消失而消失。

    聚合关系用一条空心菱形箭头直线表示。箭头指向总体。

        书和风格是一组聚合关系,风格有大小,颜色。能够是书的一部分,可是一旦脱离了书这个实体,实体风格也能够单独存在。




       (2)组合(Composition)

        

        表示实体对象关系,表达总体与部分的关系,总体拥有部分。是强依赖的聚合关系,部分会随着总体的消失而消失。

    组合关系用一条实心菱形箭头直线表示,箭头指向组合的母对象,也就是总体,表示部分属于总体。


        书和页是一个组合关系,当实体页脱离了书,便不存在了,随着书一起消失了。




        2、依赖(Dependency)


        表示一个对象在执行期会使用还有一个对象的关系,是在执行期产生的,并伴随着执行场景的不同,依赖关系也不同。

    依赖关系用一条带箭头的虚线表示,箭头指向被依赖的对象。也能够表使用关系。


        人使用刀削苹果。场景为削苹果,人依赖于刀。



       3、泛化(Generalization)


        表示对象之间的继承关系。表示一个类对还有一个类的继承。

    用空心箭头的直线表示,箭头指向被继承的对象。

      
       雇员类和雇主类,都继承与人类。




        4、实现(Realize)


        表示类对接口的实现用带空心箭头的虚线表示,箭头指向接口。
        
      

      二、比較分析


       1、聚合VS组合


       两者都是表示总体与部分的关系,可是不同的是,组合是强依赖聚合关系。部分脱离总体便不再存在。而聚合关系。部分脱离总体还能够继续存在。


       2、关联VS依赖


        刚開始分不清关联和依赖,后来看了视频里讲的是依赖能够作为使用关系,在不同场景下的使用关系。没有场景就没有关系;而关联不同,关联表示的是两个对象之间的关系。不会消失的。


        3、泛化VS实现


        对于实现与泛化的比較,泛化是类与类之间的继承。接口与接口之间的继承,而实现是类对接口的实现。

    但从绘图方面来看。除了一个是直线。一个是虚线外没有什么不同的。

    关系的强弱也一样。

        
        最后,比較几种关系的强弱:

        依赖<关联<聚合<组合<泛化=实现

        

      三、总结


       通过对照学习,加上举例,能更加清楚的理解几种关系的不同。

     

        遗留问题:实现是不是泛化的一种表现形式?
  • 相关阅读:
    转:npm安装教程
    转:数据库收缩
    转:日志插件 log4net 的使用
    转:更改SQLServer实例默认字符集
    转:IIS 应用程序池 内存 自动回收
    IDisposable
    Sql Server 判断字符串是否可以转数字
    常用算法之快速排序
    Java调用JavaScript
    使用python生成iOS各规格icon
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7279916.html
Copyright © 2020-2023  润新知