UML之类图

简介:        类图,英文明曰:Class  diagram,那么类是经过怎样神奇的蜕变,变成了类图呢?大家都知道,类是具有相似结构、行为和关系的一组对象的描述符,类是面向对象系统中最重要的构造块,类图显示了一组类、接口、协作以及他们之间的关系。

       类图,英文明曰:Class  diagram,那么类是经过怎样神奇的蜕变,变成了类图呢?大家都知道,类是具有相似结构、行为和关系的一组对象的描述符,类是面向对象系统中最重要的构造块,类图显示了一组类、接口、协作以及他们之间的关系。在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构件这些类从而实现系统,类加上他们之间的关系就构成了类图,类图中还可以包括接口、包等元素,也可以包含对象等实例。

     现在我们一起来学习一下类图,首先我们一起来看看,类图之间存在哪些关系:

     

    下面我们一起来对类图之间的关系进行逐层分解,首先,我们来看一下关联中的聚合,聚合,从她的字面上的意思就是大家伙聚到一起没有特别强的约束力,强调的是整体与部分之间的关系,下面我们来看一张聚合的图:

      

    大雁和大雁群她们之间的关系就属于聚合关系,大雁进行迁徙的时候,一只大雁属于一个大雁群,一个雁群可以有很多大雁,大雁离开了雁群还是大雁,雁群离开了其中某一只大雁,照样还有其他的大雁,大雁可以脱离雁群独立存在。接下来,关联中的组合关系,从她的字面上,我们很容易理解,大家伙组装在一起,具有很强的约束力,下面我们来看一张组合的图:

        

       大雁与羽毛和翅膀之间的关系就是组合,没有大雁就没有翅膀和羽毛,只有翅膀和羽毛也不可能是大雁,翅膀和羽毛离开大雁没有了存在的意义,大雁离开了翅膀和羽毛也不能构成大雁,翅膀和羽毛不能脱离大雁独立存在。组合是聚合的一种形式,她具有更强的拥有关系,强调整体与部分的生命周期是一致的,整体负责部分的生命周期的管理,如果整体被销毁,部分也必须跟着一起被销毁,如果所有者被复制,部分也必须一起被复制。

        接下来,我们一起来看看依赖,先看下面这张图:

         

        依赖,描述的是一种使用关系,她说明一个事物的规格说明的变化可能影响到他使用的另一个事物,反之未必,一如我们上图所示,顾客和超市构成一种依赖关系,特别需要注意的是,箭头指向被依赖的一方。接下来,我们一起来看看泛化关系,如下图:

         

       泛化,简单的来说,A是B和C的父类,B、C具有公共类也就是父类A,说明A是B和C的一般化,在我们的UML当中,对于泛化关系有三个要求,首先,子类和父类应该完全一致,父类所具有的属性、操作,子类应该都有,再者,子类中除了与父类一致的信息以外,还包括额外的信息;最后可以使用父类实例的地方,也可以使用子类的实例。现在让我们一起来看看最后一种关系,实现,如下图:

       

       实现关系,指定两个实体之间的一种合约,换言之,一个实体定义一个合约,而另一个实体保证履行合约。下面我们一起来看看这四种关系之间具有怎样的关系呢,如下图:

       

弄清了类图中的四种关系,我们再来一起学习一下,深入类图讨论以及类图的构成:

    
    下面,是我根据机房机房系统画的类图:

    

       类图是用来显示模型的静态结构,特别是模型中存在的类、类的内部结构以及他们与其他类的关系等,还有一点需要特别注意,类图不显示暂时性信息。在UML这个大家族中,类图同样也占据着重要的地位,她不但是设计人员关心的核心,更是实现人员关注的核心,建模工具也主要根据类图来产生代码。简单的来说类就是多个对象共同的属性方法、比如羽衣甘蓝、三色堇、蝴蝶兰、风信子、天堂鸟她们都是类,她们的共同属性是根茎叶,共同的方法就是开花结果。

       学习类图的过程中,首先我们要做的工作就是确定类,抽象出我们需要的类,然后根据实际情况确定类的属性和操作,确定他们之间的关系,UML之旅,未完,待续.......

目录
相关文章
|
12月前
|
小程序 JavaScript Go
代码总有一个是你想要的分享63个微信小程序源
分享63个微信小程序源代码,包括电商系统、同城拼车、博客等多种应用,涵盖C#、Node.js、Golang等技术栈。每个项目附带源码和示例,适合初学者和开发者参考学习。提取码:8888,代码效果参考:http://www.603393.com/sitemap.xml。
363 2
|
8月前
|
机器学习/深度学习 人工智能 算法
Meta-CoT:通过元链式思考增强大型语言模型的推理能力
大型语言模型(LLMs)在处理复杂推理任务时面临挑战,尤其在高级数学和抽象问题解决方面表现不足。为弥补这一差距,研究人员引入了元链式思考(Meta-CoT),该方法通过引入搜索、验证和回溯机制,使LLMs能够模拟人类的系统2思维,实现迭代和审慎推理。实验证明,Meta-CoT显著提升了LLMs在复杂任务中的表现,推动了AI从模式识别向更深层次的逻辑推理转变。
270 16
Meta-CoT:通过元链式思考增强大型语言模型的推理能力
|
8月前
|
存储 人工智能 安全
阿里云 Confidential Al 最佳实践
本次分享的主题是阿里云 Confidential AI 最佳实践 ,由阿里云乾越分享。 1. 需求背景介绍 2. 大规模场景下面临的系统及安全风险 3. 计算栈的共享职责模型与用户信任边界的冲突 4. 传统计算、存储和网络安全技术中存在用户信任成本较高的问题 5. Confidential AI 方案实施模式 6. 基于CAI技术的阿里云Confidential Cloud Computing架构 7. Confidential AI on EGS DEMO 8. 阿里云全面应用Confidential AI 9. 完备的机密计算远程证明过程 10.发布《机密计算保障人工智能系统安全研究报告
286 1
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
282 0
|
安全
[UDS] --- CommunicationControl 0x28
[UDS] --- CommunicationControl 0x28
563 0
|
数据采集 领域建模 数据库
架构设计:领域模型图(数据架构/ER图)
数据架构重要的输出是数据-实体关系图,简称 ER 图。ER 图中包含了实体(数据对象)、关系和属性 3 种基本成分。ER 图可以用来建立数据模型。如何准确的建立产品的数据模型,需要分解出业务需要什么样的数据。数据域的分解过程是站在业务架构的基础上,对业务域进行模型分析的过程。说起业务建模,大家很快会想到领域模型这个概念。这里的思路是通过领域建模来逐步提取系统的数据架构图。
1496 0
|
传感器 物联网 智能硬件
IoT设备与手机App之间实时消息通信解决方案
PLC 工控机和管理人员 App 的联动
1807 15
IoT设备与手机App之间实时消息通信解决方案
|
敏捷开发 架构师 数据建模
|
Web App开发 存储 关系型数据库
【教程】将自己的APP部署到阿里云
如何将APP部署在阿里云服务器上 如果将APP部署在阿里云服务器,可能会有一些操作需要我们来完成,下面的介绍里的说明大家可以参考下。 如何将APP部署在阿里云服务器上 随着移动通信设备终端的逐步流行,移动互联网在互联网交流中起着越来越大的作用,而移动互联网采用纯网站应用的部分相当之少,曲而代之的APP应用软件正以雨后春笋般的速度生发出来,例如说苹果IOS市场里的很多APP、谷歌安卓尔市场里的APP等。
9936 0

热门文章

最新文章