设计模式 — UML常见符号
·
(图一)
1. 继承(extends)
- 接口与接口之间的继承关系;
类与类之间的继承关系;
箭头指向方向:子类指向父类;
2. 实现(implement)
类对接口的实现关系;
箭头指向方向:实现类指向接口;
3. 关联关系(Association)
- 双向关联:可以有两个箭头或者没有箭头(不推荐);
单向关联:有一个箭头,且箭头方向指向被关联的对象;
关联关系是使实例变量实现的;
每一个关联的端点,还可以有一个基数,表示这一端的类可以有几个实例;基数 含义 0..1 零个或者一个实例 0..*或者* 对实例的数目没有限制(可以是0) 1 只有一个实例 1..* 至少有一个实例 注:聚合关系和合成关系都属于关联关系;
4. 聚合关系(Aggregation)
聚合关系属于强关联关系;
关联关系和聚合关系的不同点:
- 关联关系所涉及的两个类处于同一个层次上;
- 聚合关系所涉及的两个类处于不平等的层次上(一个代表整体,一个代表部分);
5. 合成关系(Composition)
- 合成关系属于关联关系,比聚合关系更强;
6. 依赖关系(Dependency)
- 依赖是单向的,通常以方法参数的形式、局部变量的形式,及对静态方法调用的形式出现;
7. 类图
7.1 常见的类图分为以下几个层级:
类名
- 类名层不可省略,其他几层可以不存在;
- 类名是正体字,类是具体的;
- 类名是斜体字,类是抽象的,或者是接口;
属性
- +代表public;
- #代表protected;
- -代表private ;
方法
- +代表public;
- #代表protected;
- -代表private ;
- 如果方法下面有一道下划线,则表明该方法是静态方法;
- 方法后面带的是返回值类型;
内部类
7.2 参照上面的类图写出对应的类
public class Person {
private String name;
protected int age;
public String sex;
// 构造方法
public Person() {
}
// 带参数的方法
private void work(int num) {
}
// 不带参数的方法
protected void eat() {
}
// 带返回值的方法
public String play() {
return null;
}
// 内部类
class Builder {
}
}
8. 参考:
《Java与模式》
更多推荐
所有评论(0)