外观模式
例1:
javascript
class ObjType1 {
static add () {}
}
class ObjType2 {
static add () {}
}
function addElement(type) {
switch (type) {
case 'objType1':
ObjType1.add()
break
case 'objType2':
ObjType2.add()
break
default:
break
}
}
// 调用者无需关心具体有哪些对象类自己去调用对应对象类的 add 静态方法
addElement('objType1')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
例2:
javascript
/**
* 调用者只需要知道对象 id,
* 就可以初始化对象实例,
* 不用关心具体代码是如何判断某个 id 对应的对象是哪个 class 的实例,
* 也不用关心里面的是否有缓存逻辑和是否有优先调用批查询命令替换多次调用单查询命令的情况
* 高级开发可以慢慢完善内部的具体实验,普通开发可以直接开发业务功能,只要确定好输入和输出即可
*/
batchGetElementInstanceList([id1, id2, id3, id4])
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8