开发中我们常常会与UML建模打交道,那今天就来总结一下关于UML的一些内容。
UML大致关系包含:泛化、实现、关联、依赖、聚合、组合。
泛化(继承)
- 代码表达
open class Bird {
lateinit private var wing: String;
fun fly(): Unit {
}
}
class Goose : Bird() {
}
解释一下:<鸟>的‘翅膀’是属性,‘飞’是事件,对应于代码中的属性和方法。
'+' 代表 public
'-' 代表 private
'#' 代表 protected
实现
实现与继承在uml表现不同的是:实现是虚线,继承是实线。
- 代码表达
interface Interface{
fun fly(): Unit
}
open class Bird : Interface{
lateinit private var wing: String;
override fun fly() {
}
}
关联
关联分为三种:单向关联、双向关联、自我关联
单向关联
- 代码表达
class Tree{
}
open class Bird {
lateinit var mTree: Tree
}
双向关联
- 代码表达
class Tree{
lateinit var mBird: Bird
}
open class Bird {
lateinit var mTree: Tree
}
自我关联
- 代码表达
open class Bird {
lateinit var mBird: Bird
}
依赖
依赖关系比较弱,表达的方式有很多,不固定。
- 代码表达1
class Tree{
}
open class Bird {
fun depend(aTree: Tree): Unit {
}
}
- 代码表达2
class Tree{
}
open class Bird {
fun depend(): Unit {
var tree: Tree = Tree()
}
}
聚合
- 代码表达
class Bery{
}
open class Bird {
lateinit var mBery: Bery
fun aggregation(aBery: Bery): Unit {
this.mBery = aBery
}
}
组合
注意看代码,组合与聚合微妙的差别。
- 代码表达
class Bery{
}
open class Bird {
lateinit var mBery: Bery
fun group(): Unit {
this.mBery = Bery()
}
}
注释
UML大致关系就这些,但在绘制时如何表达注释呢?
虚线连接,表达注释。
送上两张例子,练习一下。
结束。
笔者能力有限,不足之处欢迎指出。