简单工厂模式

  • 定义一个创建对象的类,由这个类来封装实例化对象的行为

实现

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
43
44
45
46
47
48
49
50
51
52
class Database { 
getDetails(){
console.log(this.name);
}
}

class Sql extends Database{
constructor(){
super();
this.name = "Sql";
}
}

class Mysql extends Database{
constructor(){
super();
this.name = "Mysql";
}
}

class MongoDB extends Database{
constructor(){
super();
this.name = "MongoDB";
}
}

class ConnectDatabase{
getType(type) {
switch (type) {
case "Sql":
return new Sql();
case "Mysql":
return new Mysql();
case "MongoDB":
return new MongoDB();
default:
throw new Error("参数错误");
}
}
}

var ConnectFn = new ConnectDatabase();

var ConnectSql = ConnectFn.getType("Sql");
ConnectSql.getDetails();

var ConnectMysql = ConnectFn.getType("Mysql");
ConnectMysql.getDetails();

var ConnectMongoDB = ConnectFn.getType("MongoDB");
ConnectMongoDB.getDetails();

参考链接