首页 > 其他分享 >UML类图

UML类图

时间:2024-04-01 15:44:55浏览次数:26  
标签:关系 聚合 函数 实线 对象 类图 关联 UML

一、图例

类图分三层,

第一层显示类的名称,如果是抽象类,则就用斜体显示。

第二层是类的特性,通常就是字段和属性。

第三层是类的操作,通常是方法或行为。

类名称:如果是抽象类,就用斜体书写。

前面的符号:'+'表示 public,'-'表示private,'#'表示 protected

接口图:与类图的区别主要是顶端有<>显示。(不过,C++是没有接口的,而是使用抽象类)

函数的返回值类型,写在函数的后面,

函数的参数列表用逗号分隔。

静态成员变量/属性、函数,用下划线标记。

如果是虚函数,用斜体书写(包括纯虚函数,纯虚函数后面还要跟着写"= 0")。

二、关系

共同点是某二者的继承性

> 实现接口:

空心三角形 + 虚线

> 继承(泛化)(Generalization):

空心三角形 + 实线(实线表示继承的关系更强)

共同点是描述某二者的相关性

> 依赖:(Dependency)

箭头 + 虚线。

依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物。

在需要表示一个事物使用另一个事物时使用依赖关系。

大多数情况下依赖关系体现在某个类的方法使用另一个类的对象作为参数。

一般一般体现为局域变量、方法的形参,或者对静态方法的调用

这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A

> 关联:(Association)

箭头 + 实线。(实线表示相关的关系更强)

即类中的成员是另一个类或其派生类型,则该类单向关联到另一个类。

因为成员即是内部的实体,故【关联】反应了实体的组成。而【依赖】,只是用到外部的其他类而已。

关联关系是类与类之间最常见的一种关系,它是一种结构化的关系,表示一个对象与另一个对象之间有联系。

分为:单向关联、双向关联、自关联

如果既是关联,又有依赖,画关联的图标。

共同点是描述类的内部各个实体与类的关系

> 聚合:(Aggregation)

箭头 (可有可无) + 实线 + 空心的菱形

一个类包含其他类的对象(即拥有一定的操作权),但是不拥有这些对象的生命所有权。

(原文:对象可以包含B对象,但B对象不是A对象的一部分)

成员对象通常以构造方法、Setter方法的方式注入到整体对象之中,因为成员对象可以脱离整体对象独立存在。

是关联关系(has-a)的一种,是强的关联关系。

与关联关系一样,聚合关系也是通过实例变量实现的。

关联的两个对象之间一般是平等的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。

> 组合:(Composition)

箭头(可有可无) + 实线 + 实心的菱形。(实心表示拥有关系更强)

相比聚合,是一种强的'拥有'关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。

是关联关系(contains-a)的一种,是比聚合关系强的关系。

整件拥有部件的生命周期,所以整件删除时,部件一定会跟着删除

。而且,多个整件不可以同时间共享同一个部件。

标签:关系,聚合,函数,实线,对象,类图,关联,UML
From: https://www.cnblogs.com/AbendEssen29/p/18108594

相关文章

  • Android项目自动生成uml图(以小米便签为例)
    摘要最近在学习软件工程,需要完成小米便签的精读,任务中需要详细类图,由于项目巨大,手动画图打咩,试了一下午的androidstudio,试了诸如codeiris,SequenceDigram(只能画时序图),simpleUML,sketchit....版本兼容折磨得头疼,索性直接使用IDEA画类图使用方法打开settingtools->Diagrams->......
  • 伪创新之所以“伪”-UMLChina建模知识竞赛第5赛季第7轮
    DDD领域驱动设计批评文集做强化自测题获得“软件方法建模师”称号《软件方法》各章合集参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。只要最先答对前3题,即可获得本轮优胜。如果有第4题,第4题为附加题,对错不影响优胜者的判定,影响的是......
  • 【UML建模】状态图(State Machine Diagram)
    原文链接:https://blog.csdn.net/qq_38249409/article/details/1299584681.概述状态图,又称为状态机图,是一种用于描述对象的生命周期和状态转换的UML图示,它是一种行为图,用于描述对象的状态和状态之间的转换。这里的对象大多数情况是指的类生成的对象,但是有时候也会代表对象、参与者......
  • UML建模——用例图(Use Case Diagram)
    原文链接:https://www.cnblogs.com/lcword/p/10472040.html用例图主要用来描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示这些元素之间的各种关系,如泛化、关联和依赖。它......
  • 已知有三盏灯,LED_1,LED_2,LED_3,每盏灯有两种状态LED_ON,LED_OFF,现有两个函数void init
      #include<stdio.h>#include<string.h>#include<stdlib.h>typedefenum  {    LED_1,    LED_2,    LED_3,  }LED;typedefenum{  LED_ON,  LED_OFF,}LED_CON;voidinit(LEDL){  switch(L)  { ......
  • 学习笔记443—UML设计:类图说明及一步一步制作UML类图
    UML设计:类图说明及一步一步制作UML类图什么是类图UML类图是用来描述一个系统的静态结构。它既可以用于一般概念建模也可以用于细节建模。类包含了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。UML类图也可以用于数据建模。它可以用来描述......
  • Discourse 分类图片
    我们可以在Discourse上为分类添加图片。   进入分类编辑界面,然后选择Image标签。在Images标签下,上传分类需要的图片。   图片大小图片的大小是Discourse进行控制的,高度为150PX像素。   如果上传的图片大于150px的高度像素,那么Dis......
  • 基于深度学习算法的垃圾分类图像识别研究
    概要  在科技发达、智能时代中,深度学习、机器学习以及人工智能成为了高频词。它们看似深不可测,但是又离不开我们的生活。深度学习和机器学习是一种技术、而人工智能一种是一种体现。使用深度学习和机器技术,使机器拥有人的某种大脑结构从而来实现人的某种行为,它不仅解决了......
  • UML类图
    UML类图是统一建模语言(UML)中用于描述系统中的类、对象以及它们之间的关系的一种图表。它是面向对象分析和设计的重要工具,用于可视化系统的静态结构。UML类图的主要元素包括:1.类(Class):类是UML类图中最基本的元素,用于表示系统中的对象。类通常用矩形表示,其中包含类的名称、......
  • 软件设计规范——UML(后端软件开发,同样要设计先行!)
    什么是UML?统一建模语言(UnifiedModelingLanguage,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。前端开发,要先用axure设计页面。但是涉及到代码的层面往往......