UML
分类:
1.用例图
2.静态结构图:类图、对象图、包图、组件图、部署图
3.动态行为图:交互图(时序图与协作图)、状态图、活动图
UML类图
代码形式:
public class Person{
private Integer id;
private String name;
public void setName(String name){this.name=name;}
public String getName(){retrun name;}
}
UML类图
类之间的关系
依赖关系
只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编译都通过不了。
代码表现:局部变量、方法参数、返回值类型、方法中使用
【箭头及指向】带箭头的虚线,指向被使用者
eg:
代码:
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{}
UML图
泛化
依赖关系的特例。实际上就是继承关系
带三角箭头的实线,箭头指向父类
代码:
public abstract class DaoSupport{}
public class PersonServiceBean extends DaoSupport{}
UML图
实现
接口被实体类实现。
带三角箭头的虚线,箭头指向接口
代码:
public interface PersonService{}
public class PersonServiceBean implements PersonService{}
UML图
关联
类与类之间的联系。
关联具有指向性:双向关系或单项关系
关联具有多重型:1:1【0:0个或多个 。0,1:0个或1个。n…m:n到每个都可以。m…*:表示至少m个 】
带普通箭头的实心线,指向被拥有者
eg:
单向一对一
public class Person{
private IDCard card;
}
UML
双向一对一关系
public class Person{
private IDCard card;
}
public class IDCard{
private Person person;
}
UML
聚合
表示的时整体和部分的关系,并且整体与部分可分开。
是关系关系的特例。因此也具有指向性与多重性。
带空心菱形的实心线,菱形指向整体
eg:
电脑可以连接键盘、显示器、鼠标等配件。而配件又是可以从电脑中分离的。
public class Computer{
private Mouse mouse;
private Monitor monitor
}
UML
组合
也表示整体与部分的关系,但是整体与部分不可分开。【同生死。eg:人与脑袋】
若是觉得鼠标和显示器与电脑是不可分离的状态,则升级为 组合关系。
带实心菱形的实线,菱形指向整体
public class Computer{
private Mouse mouse=new Mouse();
private Monitor monitor=new Monitor();
}
UML