IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【Java设计模式】UML类图六大关系总结(含代码) -> 正文阅读

[Java知识库]【Java设计模式】UML类图六大关系总结(含代码)

  • 👏作者简介:大家好,我是卷心菜~~,在校大二学生一枚,Java领域新星创作者。
  • 📝个人主页:卷心菜的CSDN博客
  • 📕系列专栏:本文写在Java设计模式专栏:不就是Java设计模式吗
  • 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
  • 🌻格言:向日葵向阳生长,我也是?

前言

今天学习了Java设计模式中的类图设计,它是学习后面课程中各种设计模式的前提,所以就整理了笔记,其中类图是自己截图过来的,感觉还可以,大家喜欢的话,三连支持一下💕🧡

一、UML基本介绍

  • UML是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果
  • Class表示类
  • Interface表示接口
  • Dependency表示依赖
  • Association表示关联
  • Generalization表示泛化(继承)
  • Realization表示实现
  • Aggregation表示聚合
  • Composite表示组合

二、UML图

UML图分为静态结构图和动态行为图,其中类图是描述类与类之间的关系,是UML图中最核心的部分,所以主要学习和介绍类图。

三、UML类图

  • 用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系
  • 类之间的关系:依赖、泛化(继承)、实现、关联、聚合、组合

四、类图分类

依赖关系(Dependency)

概念

只要是在类中用到了对方,他们之间就存在依赖关系;如果没有对方,连编译都通过不了。

代码

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 Person{}
public class PersonDao{}
public class IDCard{}
public class Department{}

对应的类图

在这里插入图片描述

小结

类中用到了对方,可以是类的成员属性、方法的返回类型、方法接收的参数类型

泛化关系(Generalization)

概念

泛化关系实际上就是继承关系,它是依赖关系的特例。

代码

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

对应的类图

在这里插入图片描述

小结

泛化关系实际上就是继承关系;如果A类继承了B类,就说A 和 B存在泛化关系

实现关系(Implementation)

概念

实现关系实际就是A 类实现B接口,是依赖关系的特例

代码

public interface PersonService {
    void delete(Integer id);
}
public class PersonServiceBean implements PersonService {
    @Override
    public void delete(Integer id) {
        System.out.println("delete..");
    }
}

对应的类图

在这里插入图片描述

小结

实现关系实际上就是实现接口;如果A类实现了B接口,就说A 和 B存在实现关系

关联关系(Association)

概念

关联关系实际上就是类与类之间的联系,是依赖关系的特例

单向一对一关系

代码

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

对应的类图

在这里插入图片描述

双向一对一关系

代码

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

对应的类图

在这里插入图片描述

小结

关联关系就比较容易,强调的是类与类之间的联系,符号用直线表示

聚合关系(Aggregation)

概念

聚合关系表示的是整体和部分的关系,整体与部分可以分开

代码

假设一台电脑由键盘,显示器,鼠标等组成;组成电脑的各个配件是可以从电脑上分离出来的。

public class Computer {
    private Mouse mouse; //鼠标可以和computer分离
    private Monitor monitor;//显示器可以和Computer分离
    public void setMouse(Mouse mouse) {
        this.mouse = mouse;
    }
    public void setMonitor(Monitor monitor) {
        this.monitor = monitor;
    }
}
public class Mouse{}
public class Monitor{}

对应的类图

在这里插入图片描述

小结

聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。

组合关系(Composition)

概念

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

代码

根据现实,一个人不能没有脑袋,但是可以没有身份证(可以补办)

public class Person {
    private Head head = new Head();
    private IDCard idCard;
}
public class IDCard{}
public class Head{}

注意:如果在程序实体中定义了对IDCard进行级联删除,即删除Person时连同IDCard一起删除,那么IDCard和Person就是组合关系了。

对应的类图

在这里插入图片描述

小结

如果把private IDCard idCard;改为 private IDCard idCard = new IDCard();表示IDCard与Person不可分开,是组合关系。

总结

类图不难,整理一下大纲:
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-14 01:50:01  更:2022-01-14 01:50:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:16:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码