首页 > 其他分享 >UML图之类图

UML图之类图

时间:2023-04-29 10:11:06浏览次数:49  
标签:关系 指向 实线 箭头 菱形 之类 UML

https://www.jianshu.com/p/a237f96e2292

 

最近在学习领域驱动设计,重新温习了一下UML图。
定义:
UML是一种面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言,UML使用面向对象的建模工具,但独立于任何程序设计语言

UML绘图规范:

  image.png

 

事物(主要介绍类class,接口interface,用例usecase,包package)
事物之间的关系:

  • 关联关系
    箭头指向被拥有者(单向关联)


      箭头指向被拥有者

    不用箭头的实线(双向关联,例如两个类相互访问)


      不用箭头的实线
  • 聚合关系
    是整体与部分的关系(如学生和学生会)
    用空心菱形的实线表示,菱形指向整体,箭头指向个体


      聚合关系
  • 组合关系
    也是整体与部分的关系(整体和个体需要有相同的生命周期,比如人的身体和手的关系),组合比聚合更加严格
    用实心菱形的实线表示,菱形指向整体,箭头指向个体


      组合关系

-泛化关系
表示一个更泛化的元素和一个具体元素之间的关系,与继承是同一个概念
用空心箭头的实线表示


  泛化关系
  • 实现关系
    类和接口之间的关系,类实现接口
    用空心箭头的虚线表示,箭头指向接口


      实现关系

-依赖关系
如果一个类的改动会影响到另一个类,则这两个类存在依赖关系,一般依赖关系是单向的
用虚线的单向普通箭头表示,箭头指向被依赖者


  依赖关系
  关系指向整理   类图

类关系记忆技巧
箭头方向:从子类指向父类。
记忆技巧:

  • 1、定义子类是需要通过 extends 关键字指定父类;
  • 2、子类一定是知道父类定义的,但父类并不知道子类的定义;
  • 3、只有知道对方信息时才能指向对方;
  • 4、所以箭头的方向是从子类指向父类。

继承实现:用线条连接两个类。
记忆技巧:

  • 1、空心三角箭头表示继承或实现。
  • 2、实线表示继承,是 is-a 的关系,表示扩展,不虚,很结实;
  • 3、虚线表示实现,虚线代表“虚”无实体。

关联依赖:用线条连接两个类。
记忆技巧:

  • 1、虚线表示依赖关系:临时用一下,若即若离,虚无缥缈,若有若无; 表示一种使用关系,一个类需要借助另一类来实现功能;
    一般是一个类将另一个类作为参数使用,或作为返回值。
  • 2、实线表示关联关系:关系稳定,实打实的关系,铁哥们;
    表示一个类对象和另一个类对象有关联;
    通常是一个类中有另一个类对象作为属性。

组合聚合:用菱形表示。
记忆技巧:

  • 1、菱形就是像是一个盛东西的器皿(比如盘子);
  • 2、聚合:空心菱形,代表空器皿里可以放很多相同的东西,
    聚集在一起(箭头方向所指的类); 整体和局部的关系,两者有独立的生命周期,是 has-a 的关系; 弱关系,消极的词:弱-空。
  • 3、组合:实心菱形,代表器皿里已经有实体结构的存在,生死与共; 整体与局部的关系,和聚合关系对比,关系更加强烈; 两者具有相同的生命周期,contains-a 的关系; 强关系,积极的词:强-满。
    注意:UML 类关系图中,没有实心箭头。
    例子:


       


作者:奋斗的韭菜汪
链接:https://www.jianshu.com/p/a237f96e2292
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:关系,指向,实线,箭头,菱形,之类,UML
From: https://www.cnblogs.com/itlover2013/p/17363640.html

相关文章

  • UML时序图实验报告
    1,这是一张向我们直接展示了银行取款活动图,首先我们需要填写表单,其次需要输入密码,根据判断条件,检查密码的正误,密码错误直接结束,密码正确,根据用户的需求,如果取款则出款并结束,如果是计算利息,则执行打印清单操作,并结束。   2,这张图片展示了用户想要续借图书的时序图,这里的目......
  • UML类图
    UML类图介绍概念UML中的类图(ClassDiagram)用于表示类、接口、实例等之间相互的静态关系。虽然名字叫作类图,但是图中并不仅仅只有类。类结构继承该图展示了Parentclass和Childclass两个类之间的关系,其中的空心箭头表明了两者之间的层次关系。箭头由子类指向父......
  • gotenberg+ chromiumly + pdf.js 进行office 文档转换以及预览处理
    日常中office预览是一个比较常见的问题,基于微软的officeonline是一个选择,但是移动端效果不是很好就有pdf以及一些基于生成图片的方案也是不错的,以下是基于gotenberg+chromiumly的一个尝试简单说明gotenberg是基于golang开发的包装了Chromium以及LibreOffice的基于api......
  • [建模技术]精通它,才能毁灭它!——谈Uml与科学和工程的关系。
    在3月23日,Ivar做客,与您畅谈程序员“而立”后的成长之路,立刻参与,就有机会当面与大师交流!的帖子中,有一位朋友对UML和Ivar大加不满,于是发了一连串的回复。我今天给出了一点我的评论和看法,大家可以到上面的帖子中查看,也可以看下面的内容,下面是我转贴过来的内容:没有人在搞UML,中国只有搞......
  • [全程建模]窥国外uml应用情况之一隅
    最近给某公司进行了一次培训,培训中看到他们在欧洲总部的工程师发过来的UML时序图一张。就这张图而言,他们的绘制完全错误,而且表达混乱,问题大概如下(其图形类似于我那本书《软件工程之全程建模实现》上第137页和134页形态的结合体):1、没有一个对整个时序图的驱动行为,也就是Actor的驱动......
  • IDE-Visual Studio Code-Extension-离线安装PlantUML
    IDE-VisualStudioCode-Extension-离线安装PlantUMLhttps://www.hd2y.net/archives/plantuml-installation-and-usePlantUML+Graphviz+JavaPlantUMLExtensionvscodemarketplace注意路径,我第一次下载的vs的插件。https://marketplace.visualstudio.com/vscodeh......
  • [全程建模]一个项目UML设计中的几个问题
    [全程建模]一个项目UML设计中的几个问题广州Sh**nGG(41****586) 2012/11/15 11:04:25各位前辈 针对昨天的那个问题 我做了一些用例图如下广州Sh**nGG(41****586) 2012/11/15 11:05:29针对以上的用例图 做出下面的类图广州Sh**nGG(41****586) 2012/11/15 11:06:52请......
  • [全程建模]UML应用与实践的对话——需求中流程与用例的关系
    Tony2008-07-2404:37:09有个问题请教一下你认为是流程中包含用例还是用例中包含流程?用例是否能体现所有需求?对用例是否应该分层,分层的原则是什么?青润07:24:51应该说,大的流程里面包含有用例,而用例里面包含有其内部的细节流程。呵呵用例肯定要考虑分层,我定义的两条原则是:业务相关......
  • 微信小程序 点击分享之类的按钮,会向上穿透
    官方文档说:hover-stop-propagation 指定是否阻止本节点的祖先节点出现点击态    但是在 button中,不管是否写 hover-stop-propagation='true'或者 hover-stop-propagation='{{true}}',都无法阻止祖先节点穿透,所以,需要在button外部加个阻止穿透的节点view:<vi......
  • UML类图实验报告
    一:首先在我们更好的理解UML类图之前,我先用几个简单的小例子把UML类图所存在的关系给表达清楚-_-!1)第一个叫泛化,名字听起来很高级,也就是我们常说的继承,就像古代的皇帝快要驾崩了,需要指定皇子来继承王位,但“继承”可要比皇子继承皇位(单继承)要牛多了,他给人的印象就像是“一人得到。......