UML——类图

UML——类图UML——类图

大家好,又见面了,我是你们的朋友全栈君。

       类是具有相似结构、行为和关系的一组对象的抽象。类图则是根据系统中的类以及各类之间的关系描述系统的静态视图。画类图首先找系统中出现的名词,再通过相应的关系把抽象出来的类联系起来。

UML——类图

       在UML中关于类图这部分主要介绍了类的基本元素,类之间的关系以及类图的构成,最后又更进一步介绍了类图的相关知识。

UML——类图

类图的关系大致可以分为以上几种,下面再具体介绍一下这几种关系:

一.关联

       关联即拥有,表示一个类知道另一个类的属性和方法,比如老师与学生这两个类之间的关系就是关联。也可以理解为使用,比如学生与单放机,所以关联表示了两个类之间的通信。

1.修饰

   修饰的三要素:名称(Association name),角色(Role),多重性(Multiplicity)。如图所示:

   UML——类图

   多重性表示一个关联的实例中有多少个相互连接的对象,具体情况可分为  

表示方式

多重性说明

1..1

表示另一个类的一个对象只与一个该类对象有关系

0..*

表示另一个类的一个对象与零个或多个该类对象有关系

1..*

表示另一个类的一个对象与一个或多个该类对象有关系

0..1

表示另一个类的一个对象没有或只与一个该类对象有关系

m..n

表示另一个类的一个对象与最少m、最多n个该类对象有关系 (m<=n)

2.普通关联

   单向关联:订单和商品,订单中包括商品,但是商品并不了解订单的存在。

   UML——类图

   双向关联:订单和消费者,订单属于消费者,消费者拥有一些特定的订单。

   UML——类图

   两个类之间的多种关联:老师既可以给学生上课,还可以给学生答疑。

   UML——类图

   一个类和多各类的关联:一个学生可以是一个学生,也可以是一个老师。

   UML——类图

3.聚合

   聚合是整体和部分的关系,分开后可以独立存在,无明显的附属关系。

   UML——类图

4.组合

   组合也是整体和部分之间的关系,但是整体不存在,个体也不能单独存在,有附属关系。

   

    

   UML——类图


二.依赖

    依赖是一种使用关系,类A要完成某个功能必须引用类B,则A与B存在依赖关系。

    例如我们需要用电脑编写代码,这是我们就依赖于电脑。

   UML——类图


三.泛化

    泛化和继承的概念是一样的,即“is a kind of ”的关系,不同的是泛化使用在分析、设计阶段,继承使用在实施阶段。

    UML——类图


四.实现

    用来规定接口和实现接口的类的关系。

    UML——类图


       自己画类图的时候,第一个难题就是不能准确的找出系统中的类,类与类之间的关系也不是很清楚,下面是机房收费系统的总的类图,感觉抽象还是不太好,希望能在大家的博客中理解的更好。

UML——类图

   

    

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105784.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 小程序文本内容无法长按复制粘贴_小程序读取剪贴板怎么办

    小程序文本内容无法长按复制粘贴_小程序读取剪贴板怎么办微信小程序的文本,要具有长按复制功能,必须满足两个条件:文本在&lt;text&gt;标签内;&lt;text&gt;标签要有selectable属性。例如:&lt;textselectable=’true’&gt;文本&lt;/text&gt;下面一个例子是,解决WxParse不能长按选择的问题。在wxParse.wxml中修改:diff-…

    2022年9月29日
    3
  • Rhakorz-piste 05_v2ray官网

    Rhakorz-piste 05_v2ray官网http://rapidgator.net/file/50123356/Odin.Blu-ray.DVD.Ripper.Platinum.v8.7.3-LAXiTY.rar.htmlhttp://ultramegabit.com/file/details/Tf41kOsUINMhttp://uploaded.net/file/5swjjfnj/Odin.Blu-ray.DVD.Ri

    2025年9月27日
    6
  • 数组转化为list

    数组转化为list1、Arrays.asList(strArray)方式将数组转换List后,不能对List增删,只能查改,否则抛异常。此时是java.util.Arrays.ArrayList这里面有java.util.Arrays里面的内部类,里面没有重写增删方法,就会调用父类的AbstractList,可以看到父类的增删方法,就会报错,即使调用iterator也会报错。publicvoi…

    2022年6月29日
    30
  • url 转码 java_java中URL转码[通俗易懂]

    url 转码 java_java中URL转码[通俗易懂]在传递参数的时候,如果有中文,那么可以先转码再转,之后再解码。URLEncoder.encode与URLDecoder.docode传递中文参数编码与解码使用java.net.URLEncoder.encode()可以对要传递的中文进行编码a.在传参数之前先把参数进行转码:java.net.URLEncoder.encode(param);取值时用语句java.net.URLDecoder.dec…

    2025年8月6日
    4
  • python中encode和decode的区别_python lstrip

    python中encode和decode的区别_python lstrip1.decode()bytes.decode(encoding=“utf-8”,errors=“strict”)1.这个函数是bytes类型数据调用的,字符串str类型是不能够调用的。(好多文章说字符串也可以调用该函数,我是真搞不懂。)2.该函数返回字符串。换句话说是bytes类型转化成str类型的函数。3.encoding规定解码方式。bytes数据是由什么编码方式编码的,该函数enc…

    2022年9月26日
    1
  • docker离线安装配置

    docker离线安装配置1、下载docker的安装文件下载地址这里下载docker-20.10.8.tgz,将docker-20.10.8.tgz文件上传到系统上:将解压出来的docker文件内容移动到/usr/bin/目录下进入/etc/systemd/system/目录,并创建docker.service文件编辑docker.service:打开docker.service文件,将以下内容复制:[Unit]Description=DockerApplicationContainerEngin

    2022年9月25日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号