【阅读】uml精粹 类图
本书的整体脉络如下:
class diagram 表示对象的类型以及其间存在的静态关系。用一个长方形表示类,用连线表示类之间的关系。
具体类图
长方形
对象的类型,也就是类有三部分表示而成
- 类名 (class name)
- 属性 (attribute)
- 操作 (operation)
属性 (attribute)
其中抽象来说,类的成员变量 可以有两种表示, 属性表示 和 关联表示。
属性表示:就是画在框里, 一般写 包括 可见行, 类型,名称 ,也可以写默认值 和 注释。 也可以标注是否是 static的 。
关联表示:连线的方式表示,类A 拥有若干个 类 C,若干 的术语是 重数,可以是 0-1,也可以是 1个,也可以多 * 表示多个
操作 (operation)
操作:画在框里,一般写 可见行,返回值,名称 和 参数, 也可以写注释
连线
类和类之间,有关联关系的可以用线连接起来。
比较宽泛可以直接连线,就表示有关系。
具体的关系
关联
一个类使用到了另外一个类,就是有关联关系。例如
class A {
public B get()
}
class B {
public int calc(A a)
}
- 用实线的情况,直接表示有关联
- 加普通箭头的情况,关联关系有方向,可以用箭头表示,一个使用了另外一方。
@startuml
B --- A
@enduml
通过线和箭头的变化,又可以表示更具体的关系.
泛化
类之间具体还有实现接口的情况,成为泛化. 用虚线空心箭头表示
class A implements B{
}
interface B {}
@startuml
interface B
class A
A ..|> B
@enduml
实现
类之间还有继承的情况,成为实现。用实线空心箭头表示
class A extend B {}
class B {}
@startuml
interface B
class A
A --|> B
@enduml
组合
也就是属性关联表示的情况,用实线实心棱形箭头表示
class A {
private B b;
}
class B {}
关联表示法
@startuml
class A
class B
A --* "1" B
@enduml
属性表示法
@startuml
class A {
- B b
}
class B
@enduml
大概这些就够了。