UML学习

张开发
2026/4/9 19:02:25 15 分钟阅读

分享文章

UML学习
UML学习UML是什么为什么要用UMLUML图有哪儿些UML图概览结构图类图1、泛化generalization)2、实现Realization3、关联Association)4、聚合Aggregation5、组合Composition6、依赖Dependency)组件图部署图UML是什么UML是Unified Model Language的缩写中文是统一建模语言是由一整套图标组成的标准化建模语言。为什么要用UML通过使用UML使得在软件开发之前对整个软件设计有更好的可读性可理解性从而降低开发风险。同时也能方便各个开发人员之间的交流。UML图有哪儿些UML图分别为结构图和行为图。结构图分为类图、轮廓图、组件图、组合结构图、对象图、部署图、包图行为图分为活动图、用例图、状态机图和交互图交互图又分为序列图、时序图、通讯图、交互概览图UML图概览结构图类图类图是一切面向对象方法的核心建模工具。类图描述了系统中对象的类型以及它们之间存在的各种静态关系。目的用来表示类、接口以及它们之间的静态结构和关系在类图中常见的有一下几种关系1、泛化generalization)【泛化关系】是一种继承关系表示子类继承父类的所有特征和行为【箭头指向】是带三角箭头的实线箭头指向父类Shape类(父类/基类-posX : int-表示私有(private)成员变量只能在Shape类内部访问display() : void表示公共(public)成员方法外部可以调用Circle(子类/派生类)继承了Shape的所有属性和方法2、实现Realization【实现关系】是一种类与接口的关系表示类是接口所有特征和行为的实现【箭头指向】带三角箭头的虚线箭头指向接口 IPay接口)是UML的标记明确这是一个接口不是普通类接口里只有方法声明没有具体代码实现就像一份“行为规范”**AliPay实现类它是一个具体的类实现了IPay接口必须完整实现接口里的所有方法如下面的JAVA代码// 定义接口支付规范publicinterfaceIPay{booleanpay();// 只声明方法没有实现}// 支付宝类实现支付接口publicclassAliPayimplementsIPay{Overridepublicbooleanpay(){// 具体实现调用支付宝支付逻辑System.out.println(跳转到支付宝支付页面...);returntrue;// 假设支付成功}}3、关联Association)【关联关系】是一种拥有关系它使得一个类知道另一个类的属性和方法【代码体现】成员变量【箭头指向】带普通箭头的实现指向被拥有者。双向的关联可以有两个箭头或者没有箭头。单项的关联有一个箭头。比如自己买的车想什么时候开就开。但是车是车人是人没有整体与部分的关系。4、聚合Aggregation【聚合关系】是一种整体与部分的关系。且部分可以离开整体而单独存在。聚合关系是关联关系的一种是强的关联关系关联和聚合在语法上无法区分必须考察具体的逻辑关系。【代码体现】成员变量【箭头指向】带空心菱形的实线空心菱形指向整体比如电脑有键盘才能输入信息电脑是整体键盘是部分键盘也可以离开电脑单纯的拿去敲。所以是聚合。5、组合Composition【组合关系】是一种整体与部分的关系。但部分不能离开整体而单独存在组合关系是关联关系的一种是比聚合关系还要强的关系。【代码体现】成员变量【箭头指向】带实心菱形和普通箭头的实现实心菱形指向整体比如鸟是整体翅膀是部分。鸟死了翅膀也就不能飞了。所以是组合。我们再看一下下面的一组经典的聚合组合关系的例子。又比如一个公司拥有多个部门公司和部门之间是组合关系公司破产了部门就不复存在了。部门和员工是聚合关系部门被裁掉员工就换下家了。6、依赖Dependency)【依赖关系】是一种使用关系即一个类的实现需要另一个类的协助【箭头指向】带普通箭头的虚线普通箭头指向被使用者比如老司机只管开车车是谁的不重要给什么车开什么车。组件图描述了系统中组件提供的、需要的接口、端口等以及它们之间的关系。用来展示各个组件之间的依赖关系。部署图描述了系统内部的软件如何分布在不同的节点上。用来表示软件和硬件之间的映射关系。比如图中简单的表示不同机器上面部署的不同软件。

更多文章