UML 类图
# UML 类图
# UML 介绍
UML(Unified Modeling Language)中文名叫统一建模语言,是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言。
它本身包括很多类型的图,但在设计模式中,主要使用其中的一种 —— 类图,以及关系(泛化和关联)。
# 类图
+
表示 public:完全开放#
表示 protected:对子类开放-
表示 private:对自己开放
当然了,JavaScript 的语言特性本身只支持 public,而 TypeScript 可以支持这三种类型。
(类图的画法)
# 泛化和关联
- 泛化,表示继承
- 用空心箭头表示,箭头指向就是「继承自」
- 关联,表示引用
- 用实心箭头表示,箭头指向就是「引用了」
# 一个示例
代码示例:
- 继承关系:A 和 B 继承了 People
- 引用关系:People 里面引用了 House
class People {
constructor(name, house) {
this.name = name;
this.house = house;
}
saySomething() {}
}
class A extends People {
constructor(name, house) {
super(name, house);
}
saySomething(){
console.log('I am A');
}
}
class B extends People {
constructor(name, house) {
super(name, house);
}
saySomething(){
console.log('I am B');
}
}
class Houst {
constructor(city) {
this.city = city;
}
showCity() {
console.log(`houst in ${this.city}`);
}
}
// 测试
let aHoust = new Houst('北京');
let a = new A('aaa', aHoust);
console.log(a); // a 有房子
let b = new B('bbb');
console.log(b); // b 无房子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
UML 类图示例:
(一个类图示例)
(完)