目录
一、什么是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 {
@Override
public 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;
}
}