UML是Unified Modeling Language的缩写,统一建模语言。UML为面向对象开发系统的产品进行说明、可视化和编制文档的一种标准语言。
UML类图:
类图是一个矩形框,分为三层,第一层显示类的名称,如果是抽象类,则用斜体显示。第二层是类的特性,通常就是字段和属性。第三层就是类的操作,通常是方法或行为。前面的符号,“+”表示public,“-”表示private,“#”表示protected。
UML接口图:
与类图的区别主要是顶端有<<interface>>显示。第一层是接口名称,第二层是接口方法。接口还有另外一种表示方法,俗称“棒棒糖表示法”
类间关系:
1、依赖:一个类A 使用另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A。表现在代码层面,为类B作为参数被类A在某个method方法中使用。
2、关联:体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,这种关系比依赖更强,不存在依赖关系的偶然性,关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的,关联可以是单向、双向的。表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。
3、聚合:聚合是关联关系的一种特例,体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。
4、组合:组合也是关联关系的一种特例,体现的是一种contain-a的关系,这种关系比聚合更强,也称为强聚合;同样体现整体与部分的关系,此时整体与部分是不可分的,整体的生命周期结束也就意味着部分在生命周期结束。表现在代码层面,和关联关系一致,只能从语义级别来区分。
强弱关系依次为:组合>聚合>关联>依赖
继承类:空心三角形+实线
实现接口:空心三角形+虚线
依赖:虚线箭头
关联:实线箭头
聚合:空心菱形+实线箭头
组合:实心菱形+实线箭头
关联、聚合、组合都可以有基数。