介绍:
1)统一建模语言,是一种用于软件系统分析和设计的语言工具,用于帮软件开发人员进行思考和记录思路的结果。
2)uml本身是一套符号的规定,这些符号用于描述模型中的各个元素和它们的关系,比如 类、接口、实现、泛化、依赖、组合、聚合等。
UML图分类:
1)用例图
2)静态结构图:类图、对象图、包图、组件图、部署图
3)动态行为图:交互图(时序图、协作图)、状态图、活动图
类图是米搜书类与类之间的关系的,为uml图的核心。
uml类图:
1)描述类(对象)本身的组成与类(对象)之间的各种静态关系。
2)类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。
IDEA的菜单栏:
类图—依赖关系
只要是在类中用到了对象,那么他们之间就存在依赖关系,如果没有对方,连编译都通不过。
public class PersonServiceBean {
private PersonDao personDao;
public void save(Person person){
}
public IDCard getIDCard(Integer personId){
return new IDCard();
}
public void modify(){
Department department = new Department();
}
}
类图—泛化关系
泛化关系实际上就是继承关系,它是依赖关系的特例。
public abstract class DaoSupport {
public void save(Object entity){
}
public void delete(Object id){
}
}
public class PersonServiceBean extends DaoSupport {
}
类图–实现关系
实际上就是A类实现了B接口,它们依赖关系的特例。
public interface PersonService {
public void delete(Integer id);
}
public class PersonServiceBean implements PersonService {
@Override
public void delete(Integer id) {
}
}
类图—关联关系
关联关系实际上就是类与类之间的联系,是依赖关系的特例。
关联关系具有导航性:也就是单向或双向关系。
单向一对一关系
public class Person{
public IDCard card;
}
public class IDCard{}
双向一对一关系
public class Person{
private IDCard card;
}
public class IDCard{
private Person person;
}
类图—聚合关系
聚合关系:表示整体与部分的关系,整体与部分可以分开,聚合关系是 关联关系的特例,所以具有导航性和多重性。
如:一台电脑由键盘、鼠标、显示器等组成;组成电脑的各个配件可以从电脑上分离出来,使用带空心菱形的实现表示。
public class Mouse{}
public class Moniter{}
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;
}
}
类图—组合关系
组合关系:整体与部分的关系,但是整体与部分不可分开。
看一个案例:
在程序中,我们定义实体Person与IDCard,那么Head和Person就是组合,IDCard和Person就是聚合。
public class Person{
private IDCard card;
private Head head=new Head();
}
public class IDCard{}
public class Head{}