• Java学习 --- 设计模式中的UML类图


    目录

    一、什么是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、类之间的关系:依赖、泛化(继承)、实现、关联、聚合、组合。

    类图示例代码:

    1. public class Person {
    2. private Integer id;
    3. private String name;
    4. public String getName() {
    5. return name;
    6. }
    7. public void setName(String name) {
    8. this.name = name;
    9. }
    10. }

    对应的UML图:

    3.1、依赖关系

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

    示例代码:

    1. public class PersonServiceBean {
    2. private PersonDao personDao;
    3. public void save(Person person) {
    4. }
    5. public IDCard getIDCard(Integer personid){
    6. return null;
    7. }
    8. public void modify(){
    9. Department department = new Department();
    10. }
    11. }
    1. public class IDCard {
    2. }
    1. public class Department {
    2. }
    1. public class Person {
    2. }
    1. public class PersonDao {
    2. }

    对应的UML类图:

     构成依赖关系总结:

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

    3.2、泛化关系

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

    示例代码: 

    1. public abstract class DaoSupport {
    2. public void save(Object entity){
    3. }
    4. public void delete(Object id){
    5. }
    6. }
    1. public class PersonServiceBean extends DaoSupport {
    2. }

    UML类图:

     3.3、实现关系

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

    示例代码:

    1. public interface PersonService {
    2. public void delete(Integer id);
    3. }
    1. public class PersonServiceBean implements PersonService {
    2. @Override
    3. public void delete(Integer id) {
    4. }
    5. }

    UML类图: 

    3.4、关联关系

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

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

    3、关联具有多重性

    单向一对一关系:

    代码示例:

    1. public class IDCard {
    2. }
    1. public class Person {
    2. private IDCard idCard;
    3. }

    UML类图:

     双向一对一关系:

    1. public class IDCard {
    2. private Person person;
    3. }
    1. public class Person {
    2. private IDCard idCard;
    3. }

                                                                                                                 

     3.5、聚合关系

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

    1. public class Computer {
    2. private Mouse mouse;
    3. private Moniter moniter;
    4. public void setMouse(Mouse mouse) {
    5. this.mouse = mouse;
    6. }
    7. public void setMoniter(Moniter moniter) {
    8. this.moniter = moniter;
    9. }
    10. }
    1. public class Moniter {
    2. }
    1. public class Mouse {
    2. }

    3.6、组合关系

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

    1. public class Computer {
    2. private Mouse mouse = new Mouse();
    3. private Moniter moniter = new Moniter();
    4. public void setMouse(Mouse mouse) {
    5. this.mouse = mouse;
    6. }
    7. public void setMoniter(Moniter moniter) {
    8. this.moniter = moniter;
    9. }
    10. }

  • 相关阅读:
    JAVA设计模式第十讲:SPI - 业务差异解决方案
    第二讲 Linear Model
    复杂数据统计与R语言程序设计实验一
    Mac M3 Pro 部署Flink-1.16.3
    opencv 入门学习
    【java_wxid项目】【第二章】【Spring Cloud Alibaba Nacos集成】
    解决错误代码0x0000011b的方法,教你一键修复0x0000011b
    PostgreSQL11.17离线安装过程(X86+Ubuntu)
    一文看懂推荐系统:召回07:双塔模型——正负样本的选择,召回的目的是区分感兴趣和不感兴趣的,精排是区分感兴趣和非常感兴趣的
    数据科学家的经验,python中dataframe的最常用设置!
  • 原文地址:https://blog.csdn.net/qq_46093575/article/details/126055793