类图的详解

简介: 类图的详解

一、类图概要


★类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法


★类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象

微信图片_20230701151710.png


二、类图中的事物及解释


(一)类


1. 从上到下分为三部分,分别是类名、属性和操作。类名是必须有的


2.类如果有属性,则每一个属性必须有一个名字,另外还可以有其他的描述信息,如可见性、数据类型、缺省值等


3.类如果有操作,则每一个操作也都有一个名字,其他可选的信息包括可见性、参数的名、参数类型、参数缺省值和操作的返回值的类型等

微信图片_20230701151744.png

(二)接口


一组操作的集合,只有操作的声明而没有实现


(三)抽象类


不能被实例化的类,一般至少包含一个抽象操作


(四)模板类


一种参数化的类,在编译时把模板参数绑定到不同的数据类型,从而产生不同的类


微信图片_20230701151757.png


三、类图中的关系及解释


(一)关联关系——描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关 联关系语义较弱。

也有两种语义较强,分别是聚合与组合

微信图片_20230701151808.png

1. 聚合关系——特殊关联关系,指明一个聚集(整体)和组成部分之间的关系

微信图片_20230701151827.png

2.组合关系——语义更强的聚合,部分和整体具有相同的生命周期

微信图片_20230701151830.png

微信图片_20230701151846.png


(二)泛化关系——※在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间

微信图片_20230701151858.png微信图片_20230701151901.png

(三)实现关系——对应于类和接口之间的关系

微信图片_20230701151918.png微信图片_20230701151920.png


(四)依赖关系——※描述了一个类的变化对依赖于它的类产生影响的情况。有多种表现形式, 例如绑定(bind)、友元(friend)等

微信图片_20230701151936.png微信图片_20230701151938.png

四、类图与代码的映射


(一)类的映射

微信图片_20230701151955.png


(二)关联关系的映射

微信图片_20230701151958.png

(三)泛化关系的映射

微信图片_20230701152002.png

(四)实现关系的映射

微信图片_20230701152004.png

(五)依赖关系的映射

微信图片_20230701152007.png

五、类图例子


(一)图形编辑器

微信图片_20230701152037.png


(一)演出售票系统

微信图片_20230701152041.png


文章内容扩展学习链接

UML概述

用例图详解

顺序图详解

协作图详解

状态图详解

活动图详解

构件图详解

部署图详解


相关文章
|
关系型数据库 开发者
|
5月前
|
API 监控 双11
淘宝/天猫获取商品历史价格信息 API 返回值的应用
本内容介绍了一款基于API的工具的核心功能,涵盖消费者决策支持、商家运营优化、市场趋势分析及数据服务拓展四大方面。消费者可借助历史价格曲线判断价格合理性、选择最佳购买时机;商家可通过竞品数据分析优化定价策略与促销活动;第三方平台能监测价格波动、跟踪竞品动态以洞察市场趋势。此外,工具还支持比价工具开发与价格预警服务,为用户和企业带来全方位的价格智能解决方案。
|
机器学习/深度学习 数据采集 数据可视化
【DSW Gallery】数据分析经典案例:Kaggle竞赛之房价预测
Python是目前当之无愧的数据分析第一语言,大量的数据科学家使用Python来完成各种各样的数据科学任务。本文以Kaggle竞赛中的房价预测为例,结合JupyterLab Notebook,完成数据加载、数据探索、数据可视化、数据清洗、特征分析、特征处理、机器学习、回归预测等步骤,主要Python工具是Pandas和SKLearn。本文中仅仅使用了线性回归这一最基本的机器学习模型,读者可以自行尝试其他更加复杂模型,比如随机森林、支持向量机、XGBoost等。
【DSW Gallery】数据分析经典案例:Kaggle竞赛之房价预测
|
数据可视化 uml
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
UML图讲解,关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系。
5851 0
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
|
存储 前端开发 数据库
【软件设计师-从小白到大牛】下午题基础篇:第一章 数据流图(DFD)
顶层图上的数据流:是系统和外部实体之间的联系。而内部数据流在0层图中能体现,因为系统被细分了。 对于数据流图任意一个加工:都应该有输入和输出,箭头有进也有出;黑洞:只有输入,没有输出;奇迹(白洞):只有输出,没有输入。这两种都不符合客观事实。
508 0
|
存储 C++
【C++】Visual Studio C++ 配置并使用gtest(不好用你捶我)
【C++】Visual Studio C++ 配置并使用gtest(不好用你捶我)
|
数据采集 设计模式 自然语言处理
设计模式最佳套路2 —— 愉快地使用管道模式
管道模式(Pipeline Pattern) 是责任链模式(Chain of Responsibility Pattern)的常用变体之一。在管道模式中,管道扮演着流水线的角色,将数据传递到一个加工处理序列中,数据在每个步骤中被加工处理后,传递到下一个步骤进行加工处理,直到全部步骤处理完毕。 PS:纯的责任链模式在链上只会有一个处理器用于处理数据,而管道模式上多个处理器都会处理数据。
12951 0
设计模式最佳套路2 —— 愉快地使用管道模式
|
编解码 API Android开发
ijkplayer、VLC Player、SmartPlayer、ExoPlayer播放器比较
ijkPlayer是BiliBili公司维护的一个开源工程,基于ffmpeg开发的一个播放器软件,支持Android和iOS平台,整个ijkplayer就是以ffplay为基础,如果只是使用它进行播放,集成也较为简单,使用也和MediaPlayer差不多,但是要定制化需求,就有一定的门槛高度。支持软硬编解码,支持倍速播放,可以定制化集成需要的功能,集成占用体积也很小,更详细的解释参看下面官方介绍:
1784 0
|
弹性计算 监控 NoSQL
图数据库系统重构之路:从OrientDB迁移到NebulaGraph 真实案例分享
图数据库系统重构之路:从OrientDB迁移到NebulaGraph 真实案例分享
376 0