UML
UML类图
UML类图概述
1)UML--Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果2)UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描
述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依
赖、组合、聚合等3)使用UML来建模,常用的工具有Rational Rose,也可以使用一些插件来建模
UML类图术语解释
Entity:
1.Class-->表示类,可以添加属性和方法2.Interface-->表示接口Relation:
1.Dependency-->表示依赖(使用)-->虚线 箭头2.Association-->表示关联-->实线3.Generalization-->表示泛化(继承)-->实线 三角形箭头4.Realization-->表示实现-->虚线 三角形箭头5.Aggregation-->表示聚合-->实线 菱形箭头6.Composite-->表示组合(也是关联关系中的一类)-->实线 实心菱形箭头
UML图分类
UML图分类:1)用例图(use case)2)静态结构图:类图、对象图、包图、组件图、部署图3)动态行为图:交互图(时序图与协作图)、状态图、活动图其中,类图是描述类与类之间的关系的,是UML图中最为核心的部分
UML类图
1)用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系2)类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合类图示例:
代码形式:
public class Person {private Integer id;private String name;public void setName(String name){this.name = name;}public String getName(){return name;}
}
UML类图之依赖关系(Dependence)
只要是在类中用到了对方,那么它们之间就存在依赖关系,如果没有对方,编译都不能通过依赖关系:
1.类中使用到了对方
2.是类的成员属性
3.是方法的返回类型
4.是方法接收的参数类型
5.方法中使用到了
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类图之泛化关系(Generalization)
泛化关系实际上就是继承关系,它是依赖关系的特例泛化关系:
1.泛化关系实际上就是继承关系
2.如果A类继承了B类,则A类和B类存在泛化关系
public abstract class DaoSupport{public void save(Obeject entity){}public void delete(Object id){}
}public class PersonServiceBean extends DaoSupport{}
UML类图之实现关系(Implementation)
实现关系实际上就是A类实现B接口,它是依赖关系的特例
public interface PersonService {public void delete(Integer id);
}public class PersonServiceBean implements PersonService{public voiud delete(Integer id){}
}
UML类图之关联关系(Association)
关联关系实际上就是类与类之间的联系,它是依赖关系的特例关联关系具有导航性:单向关系或双向关系关联关系具有多重性:
"1"-->表示有且仅有一个
"0..."-->表示零个或者多个
"0,1"-->表示零个或者一个
"n...m"-->表示n-m范围内个
"m..."-->表示至少m个
//单向一对一关系
public class Person{private IDCard card;
}public class IDcard{}//双向一对一关系
public class Person {private IDCard card;
}public class IDCard{private Person person;
}
UML类图之聚合关系(Aggregation)
聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例因此聚合关系具备关联关系的导航性及多重性举例:
一台电脑由键盘、显示器、鼠标等组成
组成电脑的各个配件是可以从电脑上分离出来的,使用空心菱形的实线表示如果键盘、显示器、鼠标是不可分离的(例如一体机),则可以成为组合关系
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;}
}
public class Computer {private Mouse mouse = new Mouse();private Monitor monitor = new Monitor();}public class Client{public static void main(String[] args) {Computer computer = new Computer(); }
}
UML类图之组合关系(Composition)
组合关系:也是整体与部分的关系,但是整体与部分不可以分开举例:
定义实体类:Person与IDCard、Head
那么Head和Person就是组合,IDCard和Person就是聚合如果在代码中Person实体中定义了对IDCard进行级联删除,即删除Person时连同IDCard一起删除,那么IDCard和Person就是组合关系了
public class Person{private IDCard card;private Head head = new Head();
}public class IDcard{}public class Head{}