目录

一、什么是UML

二、UML图分类

三、UML类图

3.1、依赖关系

3.2、泛化关系

3.3、实现关系

3.4、关联关系

3.5、聚合关系

3.6、组合关系


一、什么是UML

1、UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,用于帮助软件开发人员进行思考和记录思路的结果。

2、UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和它们之间的关系,如类、接口、实现、泛化、依赖、组合、聚合等。

二、UML图分类

1、用例图

2、静态结构图:类图、对象图、包图、组件图、部署图。

3、动态行为图:交互图(时序图与协作图)、状态图、活动图。

类图:描述类与类之间的关系,是UML图的核心。

三、UML类图

1、用于描述类(对象)本身的组成和类(对象)之间的各种静态关系。

2、类之间的关系:依赖、泛化(继承)、实现、关联、聚合、组合。

类图示例代码:

public class Person {private Integer id;private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}
}

对应的UML图:

3.1、依赖关系

只要在类中用到对方,它们之间就会存在依赖关系。

示例代码:

public class PersonServiceBean {private PersonDao personDao;public void save(Person person) {}public IDCard getIDCard(Integer personid){return null;}public void modify(){Department department = new Department();}
}
public class IDCard {
}
public class Department {
}
public class Person {
}
public class PersonDao {
}

对应的UML类图:

构成依赖关系总结:

1、类中用到对方。2、如果是类的成员属性。3、如果是方法的返回类型。 4、是方法接收的参数类型。 5、方法中使用到。

3.2、泛化关系

泛化关系就是继承关系,是依赖关系的特例。

示例代码:

public abstract class DaoSupport {public void save(Object entity){}public void delete(Object id){}
}
public class PersonServiceBean extends DaoSupport {
}

UML类图:

3.3、实现关系

实现关系就是一个接口被一个类实现了,是依赖关系的特例。

示例代码:

public interface PersonService {public void delete(Integer id);
}
public class PersonServiceBean implements PersonService {@Overridepublic void delete(Integer id) {}
}

UML类图:

3.4、关联关系

1、关联关系等同于类与类之间的联系,是依赖关系的特例。

2、关联具有导航性:就是双向关系和单向关系。

3、关联具有多重性

单向一对一关系:

代码示例:

public class IDCard {
}
public class Person {private IDCard idCard;
}

UML类图:

双向一对一关系:

public class IDCard {private Person person;
}
public class Person {private IDCard idCard;
}

3.5、聚合关系

聚合关系表示整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,同样具有导航性和多重性。

public class Computer {private Mouse mouse;private Moniter moniter;public void setMouse(Mouse mouse) {this.mouse = mouse;}public void setMoniter(Moniter moniter) {this.moniter = moniter;}
}
public class Moniter {
}
public class Mouse {
}

3.6、组合关系

整体与部分的关系,但是整体与部分不可以分开。

public class Computer {private Mouse mouse = new Mouse();private Moniter moniter = new Moniter();public void setMouse(Mouse mouse) {this.mouse = mouse;}public void setMoniter(Moniter moniter) {this.moniter = moniter;}
}

Java学习 --- 设计模式中的UML类图相关推荐

  1. android 继承类图,Android Studio中绘制UML类图介绍

    Android Studio中绘制UML类图介绍 Android Studio中绘制UML类图介绍 动机 最近开始阅读项目源码,从其中一个模块开始看,奈何大项目中的一个模块,对于萌新而言,也太过于复杂 ...

  2. 一文掌握设计模式(定义+UML类图+应用)

    一.引子 从学编程一开始就被告知,要想做一名优秀的程序员两大必要技能:1.源码阅读(JDK.C等底层语言封装) 2.设计模式(使用某种语言优雅的落地典型场景功能).一般随着工作年限的增长,被迫对底层语 ...

  3. Java:封装的概念,UML类图,构造方法,this关键字,static关键字,方法重载,包package

                     oop三大特性:封装,继承,多态 oop一般指面向对象程序设计(一种计算机编程架构) 一.封装的概念:    将东西包在一起,然后以新的完整形式呈现出来       ...

  4. 【大话设计模式-2】UML 类图的绘制(源码案例分析)

    文章目录 1 UML 基本介绍 2 UML 图 3 UML 类图 4 类图-依赖关系(Dependence) 5 类图-泛化关系(generalization) 6 类图-实现关系(Implement ...

  5. Solidity - 使用Remix 插件 SOLIDITY 2 UML 生成UML类图 及 在以太坊浏览器中查看UML类图

    今天想把已经写好的合约使用UML梳理一下,因为使用到了接囗.库.抽象合约及合约,所以想使用UML梳理一下更清晰.本来想用Viso,但是在其它语言里没有库(library)的概念,所以查了一下如何表示, ...

  6. Java设计模式之观察者模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

  7. 怎么帮java转换成类图_有把java代码直接转成uml类图的工具吗 – 手机爱问

    2012-05-31 如何将JAVA程序转化成C程序? 给你代码: typedef unsigned char byte; //这是个转换的基础数组,使用查表的方法将十六进制字符转换成数值 stati ...

  8. 设计模式中的工厂类图

    工厂模式(易混淆,好不容易用会magicdraw:))  1.简单工厂方法 2.工厂方法 3.抽象工厂方法

  9. Java设计模式(二):UML 类图和概述

    目录 一·UML类图 1.1 UML 基本介绍 1.2 UML 图 1.3 UML 类图 1.4 类图-依赖关系 ( Dependence) 1.5 类图-泛化关系(generalization) 1 ...

最新文章

  1. DELL服务器重做RAID
  2. NBA部署SAP HANA内存数据库
  3. C# 温故知新 基础篇(7) 接口思维导图
  4. 只要你懂为啥有人爱砍传奇,就能明白《逃离塔科夫》为何会成功
  5. 两种解决IE6不支持固定定位的方法
  6. ssh远程连接(ubuntu、windows)
  7. java 双声道音频_Android 播放音频如何实现双声道效果
  8. wsl 重启_WSL(Windows Subsystem for Linux) 安装教程
  9. 【渝粤教育】国家开放大学2019年春季 7407药物治疗学(本) 参考试题
  10. 燕姿几首歌的歌词-偶得
  11. 雷蛇键盘灯光配置文件_三模连接一步到位,游戏宅女必备的雷蛇电竞外设套装...
  12. 因果推断笔记—— 相关理论:Rubin Potential、Pearl、倾向性得分、与机器学习异同(二)
  13. 新浪新闻发布Z世代洞察报告:Z世代偏爱深入“吃瓜” 对元宇宙兴趣强烈
  14. Opencv获取电脑摄像头抓拍的信息,
  15. 笔记代码(各种算法实现)
  16. bitset(位图)原理与用法
  17. 删除 Windows 的默认打开方式
  18. [摘录]第二部分 战略决策(3)
  19. /travel/src/main/java/cn/itcast/travel/util/MailUtils.java:[1,1] 非法字符:
  20. MeterSphere使用分享 | 使用MeterSphere进行接口测试

热门文章

  1. 【每天更新】2022年最新WordPress主题下载,外贸独立站商城/企业网站/个人博客模板 2022-5-14(1/6)
  2. 解决JVM内存不足的问题
  3. 常见颜色(color)与RGB 的调色
  4. npm install的时候报错 npm err code 1
  5. 中国移动 3G 随e行,大唐 DT800H 在CentOS下的设置笔记
  6. 公有云与私有云对比分析报告
  7. mysql 游戏 知乎_入行游戏测试之Navicat For MySQL
  8. TypeError pybind11::init(): factory function returned nullptr
  9. 百亿蓝海蓄势待发,手术机器人国产替代浪潮下的黄金赛道(上)
  10. python弹钢琴_flash钢琴自动弹奏之Python实现