`
liuguofeng
  • 浏览: 435141 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

UML类图几种关系的总结

    博客分类:
  • Java
 
阅读更多

  在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

         1. 泛化(Generalization

        【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

        【箭头指向】:带三角箭头的实线,箭头指向父类

UML类图几种关系的总结 

        2. 实现(Realization

        【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.

        【箭头指向】:带三角箭头的虚线,箭头指向接口

UML类图几种关系的总结 

        3. 关联(Association)

        【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

        【代码体现】:成员变量

        【箭头及指向】:带普通箭头的实心线,指向被拥有者

UML类图几种关系的总结 

        上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 

        下图为自身关联: 

UML类图几种关系的总结

        4. 聚合(Aggregation

        【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

        聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

        【代码体现】:成员变量

        【箭头及指向】:带空心菱形的实心线,菱形指向整体

UML类图几种关系的总结 

        5. 组合(Composition)

        【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

       组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体

UML类图几种关系的总结

        6. 依赖(Dependency)

        【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

        【代码表现】:局部变量、方法的参数或者对静态方法的调用

        【箭头及指向】:带箭头的虚线,指向被使用者

UML类图几种关系的总结 

        各种关系的强弱顺序:

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

        下面这张UML图,比较形象地展示了各种类图关系:

UML类图几种关系的总结

转自:http://blog.csdn.net/tianhai110/article/details/6339565

 

1        UML(统一建模语言)

1.1      UML是什么

一种创建程序模型的可视化语言,所谓的程序模型,就是程序的图形化表现形式。

1.2      为什么使用UML

主要是为了交流,交流就需要在一个标准的平台上进行,比如中国人交流,都会在中文的平台上进行。UML提供了描述程序模型的一个标准,让开发人员、客户更好的进行交流。

为了交流的清晰,UML定义好不同的图来专门表示不同类型的信息,可以非常清晰的表达我们对系统的理解,以及该理解是否和其他人一致。

为了交流的精确,在交流前,UML强迫设计者必须认真思考他的设计方案,因为他需要把他的设计方案用UML画出来。

1.3      UML中的图

1.3.1   介绍

  • 用例图,关注系统与客户的交互情况,即客户可对系统做什么?
  • 活动图,关注业务的工作流,业务的逻辑情况。
  • 交互图,关注业务或程序中互相交互的情况。
  • 类图,关注类之间的关系。
  • 状态图,关注系统各对象之间的不同状态以及状态之间的转换。
  • 配置图,关注不同的模块之间如何配置。

1.3.2   类图

UML图中最基本的就是类图,它描述类,并表现类之间的关系。

1.         描述单个类:

 

需要注意的是:类名为斜体字表示该类为抽象类;类图中属性和方法前面的符号,它们表示属性和方法成员的可访问性。一般为:

  • 公共的(Public):用加号(+)标记。
  • 保护的(Protected):用(#)标记。
  • 私有的(Private):用(-)标记。

描述类之间的关系:

类与类之间可分为4种关系:

  • 泛化关系,比如派生、继承、拥有……。如同人可分为男人和女人一样。

 

  • 组合关系,一个对象A是另一个对象B的一部分,且A这部分不能独立存在。如同轮胎和汽车一样,汽车没有轮胎不能称为“完整”的汽车,或汽车的功能不完整了。

           

 

  • 聚集关系,一个对象A是另一个对象B的一部分,但是A这个对象可以独立存在,不影响对象B。如同飞机和飞机场一样,飞机飞走了,飞机场还是独立的,不受飞机在不在的影响。

        

 

  • 使用关系,一个对象A使用了另一个对象B。如同小汽车使用汽车加油站一样。

        

 

1.3.3   交互图

类图只能显示类之间的静态关系,要显示类的对象之间如何协调工作的,就需用交互图。

交互图就是显示对象之间如何交互的UML图。

 

 

1.4      总结

记住UML图的作用,它只是提高你的设计和帮助表达你的设计,只是一种辅助手段、工具。所以不必过分考虑用正确的方法创建图,只需考虑表达你的设计种的概念的最佳方式。

当然,这也就意味着你不应该用不规范的方式使用UML,那样不利于正确的沟通。

 

在画图的时候,你只需考虑你试图表达的思想。

分享到:
评论

相关推荐

    UML类图几种关系的总结 - OPEN 开发经验库

    在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖

    UML:类图关系总结

    UML类图几种关系的总结,泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition...

    比较常用UML类图几种关系的小结

    本文给大家总结了UML类图中几种比较常用的关系小总结,需要的朋友可以参考下

    UML几种类图

    本文档是对类图的几种关系的描述,希望对大家学习UML有用!

    UML中关联、泛化、依赖、实现的几种关系.docx

    学习《设计模式》好长时间了,可是到现在还是分不太清楚几种UML中的几种关系。如果这几种关系理解的不是很透彻的话,那么会直接影响到对类图之间关系的理解,下面就来分析下几种关系吧!

    UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别

    UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别 这是一堂关于UML基础知识的补习课;现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更...以下就分别介 绍这几种关系:

    uml统一建模试卷,期末考试复习资料

    1、一个设计得好的OO系统具有( )的特征。...6、类和接口的关系类似于下面哪种类型的关系。 A.关联和聚集 B.关联和组合 C.脚本和用例 D.包和子系统 7、如图所示,类PaymentController必须实现哪些方法?

    matlab终止以下代码-UML_Parser:BUAA面向对象的编程单元4

    matlab终止以下代码 第四单元总结 总 本部分是2019年北航面向对象(OO)课程第四单元作业(UML)的总结。两次作业的要求大致如下: 第一次作业:实现一个UML类图解析器,可以...类图中涉及到以下几种类型的对象 UMLC

    UML基础教程:用例图、类图、序列图

    UML基础教程,详细介绍了UML几种不同的画图标准,用例图、类图、序列图等等

    Java与UML交互图

    前面我们主要讨论的是UML类图,下面我们要讨论的是另一种UML图——交互图(InteractionDiagram)。交互图描述的是一组对象之间的交互过程,或者说,这里我们实际上要回答这样一个问题:“方法调用过程在UML中怎样...

    dotnet-microservices:分布式微服务项目实战

    微服务系列 用户服务 docker docker安装mysql 外部volume挂载资料卷 ef生成数据库 生成数据和数据初始化 dapper dapper contain,仓储,事务,工作单元应用 webapi Restful ...UML类图几种关系 MongoDB

    UML和模式应用(架构师必备).part07.rar

    第16章 UML类图 16.1 应用UML:常用类图表示法 16.2 定义:设计类图 16.3 定义:类元 16.4 表示UML属性的方式:属性文本和关联线 16.5 注解符号:注解、注释、约束和方法体 16.6 操作和方法 16.7 关键字 ...

    系统需求规格说明书1

    1.2 画法这里只描述UML类图的画法:类之间的几种关系:泛化(Generalization)、实现(Realization)、关联(Association)

    UML和模式应用(架构师必备).part06.rar

    第16章 UML类图 16.1 应用UML:常用类图表示法 16.2 定义:设计类图 16.3 定义:类元 16.4 表示UML属性的方式:属性文本和关联线 16.5 注解符号:注解、注释、约束和方法体 16.6 操作和方法 16.7 关键字 ...

    UML和模式应用(架构师必备).part02.rar

    第16章 UML类图 16.1 应用UML:常用类图表示法 16.2 定义:设计类图 16.3 定义:类元 16.4 表示UML属性的方式:属性文本和关联线 16.5 注解符号:注解、注释、约束和方法体 16.6 操作和方法 16.7 关键字 ...

    軟件建模技術與與UML說明

    4.3 类图 4.4 对象图 4.5 几个特殊问题 5.1 概述 5.2 顺序图 5.3 协作图 5.4 顺序图与协作图比较 6.1 状态图 6.2 活动图 6.3 两种图的比较 7.1 构件图 7.2 部署图 7.3 包图 8.1 UML视图和应用领域 8.2 软件模型与UML...

Global site tag (gtag.js) - Google Analytics