平时阅读一些分析类文章或是设计应用架构时,没少与UML类图打交道。实际上,UML类图中最常用到的元素就几种。但熟练,需要一个过程,大家熟记并多加使用,一定能掌握。
图①
如上图,它就代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。注意前面的符号,"+" 表示 public, "-" 表示 private,"#" 表示 protected。
代码如下:
public class Stack {
public int MAXSIZE;
public int top;
public void push() {
//省略一些代码
}
public void pop() {
//省略一些代码
}
}
复制代码
图②
如上图,它表示一个接口(Interface),与类图的区别主要是顶端有<>显示。第一行是接口名称,第二行是接口方法。
代码如下:
interface OnClickListener {
void onClick();
}
复制代码
图③
如上图,它表示继承的关系,SubStack是子类,Stack是父类。继承关系用空心三角形+实线来表示。
代码如下:
public class Stack {
public int MAXSIZE;
public int top;
public void push() {
//省略一些代码
}
public void pop() {
//省略一些代码
}
}
public class SubStack extends Stack {
public int count;
public void cleanAll() {
//省略一些代码
}
}
复制代码
图④
如上图,它表示实现的关系,Stack类实现了OnClickListener接口。实现接口用空心三角形+虚线来表示。
代码如下:
public class Stack implements OnClickListener {
public int MAXSIZE;
public int top;
public void push() {
//省略一些代码
}
public void pop() {
//省略一些代码
}
@Override
public void onClick() {
}
}
复制代码
图⑤
如上图,它表示关联关系。关系关系用实线箭头来表示。
代码如下:
public class People {
private Money money;
}
复制代码
图⑥
如上图,公司类和员工类,每个员工都是属于一家公司的,一家公司可以有很多员工。所以它们之间满足聚合的关系。聚合表示一种弱的"拥有"关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。(PS:空壳公司不就没有员工么)
聚合关系用空心的菱形+实线来表示。
代码如下:
public class Company {
private List<Staff> staffs;
}
复制代码
图⑦
如上图,它表示组合关系。**组合是一种强的"拥有"关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。**在这里人和手就是组合关系,因为它们是部分和整体的关系,并且手和人的生命周期是相同的。组合关系用实心的菱形+实线来表示。
代码如下:
public class People {
private Hand hand;
public People() {
hand = new Hand();
}
}
复制代码
图⑧
如上图,它表示依赖关系,用虚线箭头表示。在这里人要生存,需要食物和水,人依赖于食物和水。
代码如下:
public class People {
public eat(Food food,Water water) {
}
}
复制代码