UML类图

172 阅读2分钟

一、概述

  • UML:(Unified modeling language)统一建模语言,是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果
  • UML类图:用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系
  • 类之间的关系:依赖、泛化(继承)、实现、关联、聚合和组合
  • 简单的类图
public class Person {
        private Integer id;
        private String name;
        public void setName(String name) {
                this.name = name;
        }
        public String getName() {
                return name;
        }
}

在这里插入图片描述

二、依赖关系

  • 只要是在类中用到了对方,那么他们之间就存在依赖关系。
    • 类中用到了对方
    • 如果是类的成员属性
    • 如果是方法的返回类型
    • 是方法接受的参数类型
    • 方法中使用到
public class PersonServiceBean {
        private PersonDao personDao; // 类
        public void save(Person person) {}
        public IDCard getIDCard(Integer personid) {}
        public void modify() {
                Department department = new Department(); 
        }
}
public class PersonDao {}
public class IDCard {}
public class Person {}
public class Department {}

在这里插入图片描述

三、泛化关系(generalization)

  • 即继承关系,依赖关系的特例
public abstract class DaoSupport {}
public class PersonServiceBean extends DaoSupport {}

在这里插入图片描述

四、实现关系(Implementation)

  • A类实现了B类的接口
public interface PersonService {}
public class PersonServiceBean implements PersonService {}

在这里插入图片描述

五、关联关系(Association)

  • 实际上就是类与类之间的联系,他是依赖关系的特例。具有导航性,即单向或双向关系。具有多重性,可以表示0或多个
public class Person {
        private IDCard card;
}
public class IDCard {
}

在这里插入图片描述

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

在这里插入图片描述

六、聚合关系(Aggregation)

  • 表示整体和部分的关系,整体和部分可以分开,是关联关系的特例,所以它具有关联的导航性和多重性。如,一台电脑可以没有键盘,他们之间的关系就是聚合。通过set()方法载入
public class Computer {
        private Mouse mouse;
        private Monitor monitor;
        public void setMouse(Mouse mouse) {
                this.mouse = Mouse;
        }
        public void setMonitor(Monitor monitor) {
                this.monitor= monitor;
        }
}

在这里插入图片描述

七、组合关系(Composition)

  • 整体与部分之间的关系,但整体与部分不能分开。比如说,人和人的头部
public class Person {
        private IDCard card;
        private Head head = new Head();
}
public class IDCard {}
public class Head {}

在这里插入图片描述