JavaScript设计模式
设计模式
本章节主要说明JavaScript的设计模式的各种实现,“设计模式”(Design Pattern)是针对编程中经常出现的、具有共性的问题,所提出的解决⽅法。著名的《设计模式》⼀书⼀共提出了23种模式。
⼀提起设计模式,相信⼤家都会脱⼝⽽出,23种设计模式及设计原则。我们的课程中会给⼤家介绍⼀些常⻅的设计原则,但是如果要想对设计原则应⽤熟练,还需要⽇后⼤家在不断的⼯作中去体会和深⼊了解。
所以也有⼈认为设计模式是“禅”,在悟不在学。但是在初始阶段,我们还是要学习⼀些设计模式的基础实现。
本套课程讲解常⻅设计模式,⼀下10种设计模式是我们在应⽤过程中⽐较常⻅的设计模式
设计原则
开闭原则:告诉我们要【对扩展开放,对修改关闭】
⾥⽒替换原则:告诉我们【不要破坏继承体系】
依赖倒置原则:告诉我们要【⾯向接⼝编程】
单⼀职责原则:告诉我们实现【类】要【职责单⼀】
接⼝隔离原则:告诉我们在设计【接⼝】的时候要【精简单⼀】
迪⽶特法则:告诉我们要【降低耦合度】
设计模式分类
创建型
⼯⼚模式
单例模式
原型模式
结构型
适配器模式
代理模式
⾏为型
策略模式
迭代器模式
观察者模式
命令模式
状态模式
⼯⼚模式
⼯⼚模式介绍
⼯⼚模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使⽤⼀个共同的接⼝来指向新创建的对象,⽤⼯⼚⽅法代替new操作的⼀种模式。
代码实现
class Animal {
constructor(name) {
this.name = name
}
}
class Creator {
create(name) {
return new Animal(name)
}
}
var creator = new Creator()
var duck = creator.create('Duck')
console.log(duck.name) // Duck
var chicken = creator.create('Chicken')
console.log(chicken.name) // Chicken
let UserFactory = function (role) {
if (this instanceof UserFactory) {
var s = new this[role]();
return s;
} else {
return new UserFactory(role);
}
}
UserFactory.prototype = {
SuperAdmin: function () {
this.name = "超级管理员",
this.viewPage = ['⾸⻚', '通讯录', '发现⻚', '应⽤数据', '权限管理']
},
Admin: function () {
this.name = "管理员",
this.viewPage = ['⾸⻚', '通讯录', '发现⻚', '应⽤数据']
},
NormalUser: function () {
this.name = '普通⽤户',
this.viewPage = ['⾸⻚', '通讯录', '发现⻚']
}
}
let superAdmin = UserFactory('SuperAdmin');
let admin = UserFactory('Admin')
let normalUser = UserFactory('NormalUser')
什么时候使⽤⼯⼚模式
以下⼏种情景下⼯⼚模式特别有⽤:
对象的构建⼗分复杂
需要依赖具体环境创建不同实例
处理⼤量具有相同属性的⼩对象
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Uniquezx
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果