UML简要教程

简介

UML: unified modeling language, 统一建模语言,是一种用于软件系统分析和设计的语言工具

继承,依赖,聚合,组合 简单示意图如下:
在这里插入图片描述

依赖-Dependency

只要是在类中用到了对方,那么他们之间就存在依赖关系。如果 没有对方,无法编译

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

示例代码:

package com.uml.dependence;

public class PersonServiceBean {
    private PersonDao personDao;

    public void save(Person person) {
    }

    private IDCard getIDCard(Integer personId) {
        return null;
    }

    public void modify() {
        Department department = new Department();
    }
}

UML关系图如下图所示:
在这里插入图片描述

泛化(继承)-generalization

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

示例代码:

public abstract class DataSupport {

    public void save(Object entity) {

    }

    public void delete(Object id){

    }
}

public class PersonSaveBean  extends DataSupport{
}

UML图:
在这里插入图片描述
小结:

  1. 泛化关系实际上就是继承关系
  2. 如果A类继承了B类,我们就说A和B存在泛化关系

实现-implementation(realization)

实现关系就是A类实现B类,也是依赖关系的一种特例

示例代码:

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

    }
}

UML图:
在这里插入图片描述

关联-Association

关联关系实际上就是类与类之间的关系,也是依赖关系的特例
关联具有导航性:即双向关系或单向关系
关联就有多重性:如“1”(表示有且仅有一个),“0…”(表示0个或者多个),“0,1”(表示0个或者1个),“n…m”(表示n到m个都可以),“m…”(表示至少m个)

示例代码:
单向一对一关系:

class Person {
    private IDCard idCard;
}

class IDCard{
    
}

在这里插入图片描述
双向一对一关系:

class Person {
    private IDCard idCard;
}

class IDCard{
    private Person person;
}

在这里插入图片描述

聚合-aggregation

表示整体和部分的关系,整体与部分可以分开,是关联关系的特例,所以也具有关联关系的导航性和多重性。
如:一台电脑由键盘(keyboard)、显示器(monitor)、鼠标等组成,组成电脑的各个配件是可以从电脑上分离出来的,使用空心菱形的实现来表示

示例代码:

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 Monitor {
}
public class Mouse {
}

UML图:
在这里插入图片描述

组合-composition

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

借用aggregation中的例子,如果我们认为Mouse,Monitor和Computer是不可分离的,则升级为组合关系。
实例代码:

public class Computer {
    private Mouse mouse = new Mouse(); //鼠标可以和computer不可以分离
    private Monitor monitor = new Monitor();//显示器可以和computer不可以分离
}

在这里插入图片描述
在组合中,Mouse、Monitor和Computer是共生共灭的关系,在Computer类创建的时候Mouse和Monitor也会创建,当Computer类销毁对的时候,Mouse和Monitor也会销毁

组合、聚合区分实例

我们定义一个对象Person(人),人与身体上的器官(头)是不可分离的属于组合关系,每个人都有身份证,身份证丢了可以重新补办,人与身份证的关系属于聚合关系。
示例代码:

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

UML图:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值