web前端全系列 教程
1839个小节阅读:2244.1k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
⼯⼚模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使⽤⼀个共同的接⼝来指向新创建的对象,⽤⼯⼚⽅法代替new操作的⼀种模式。
1class Animal {
2 constructor(name) {
3 this.name = name
4 }
5}
6class Creator {
7 create(name) {
8 return new Animal(name)
9 }
10}
11var creator = new Creator()
12
13var duck = creator.create('Duck')
14console.log(duck.name) // Duck
15
16var chicken = creator.create('Chicken')
17console.log(chicken.name) // Chicken
18
xxxxxxxxxx
251let UserFactory = function (role) {
2 if (this instanceof UserFactory) {
3 var s = new this[role]();
4 return s;
5 } else {
6 return new UserFactory(role);
7 }
8 }
9UserFactory.prototype = {
10 SuperAdmin: function () {
11 this.name = "超级管理员",
12 this.viewPage = ['⾸⻚', '通讯录', '发现⻚', '应⽤数据', '权限管理']
13 },
14 Admin: function () {
15 this.name = "管理员",
16 this.viewPage = ['⾸⻚', '通讯录', '发现⻚', '应⽤数据']
17 },
18 NormalUser: function () {
19 this.name = '普通⽤户',
20 this.viewPage = ['⾸⻚', '通讯录', '发现⻚']
21 }
22}
23let superAdmin = UserFactory('SuperAdmin');
24let admin = UserFactory('Admin')
25let normalUser = UserFactory('NormalUser')
以下⼏种情景下⼯⼚模式特别有⽤: