JS设计模式——设计模式概论
前言
在了解设计模式后,发现它起始没有那么高大上,有些是我们平时开发中已经用到的东西(更好的设计模块,组织共同的代码),它只是给这些好用的代码模式起了一个名字而已。
一、设计模式
项目/功能 = 模块 + 沟通;
1. 设计模式扮演的角色
1. 帮助我们组织模块(通过一些设计模式,组织模块间的组成结构); 2. 帮助我们设计沟通(有的设计模式可以帮助我们设计模块间如何沟通); 3. 提高代码质量(通过设计模式,让代码更加优雅);
2. 程序设计原则
1. 开闭原则(我们的程序对扩展开放,对修改关闭。); 2. 单一职责原则(模块只做一件事情,它的职责越单一越好); 3. 依赖倒置原则(上层模块不依赖具体的下层模块,而应该依赖抽象层);
//依赖倒置原则(上层模块不依赖具体的下层模块,而应该依赖抽象层)代码实例
//假设有四种菜,一个点单类
//1.点单依赖菜的代码(有几种菜,点单上就忒有几种方法,当菜发生变动时,点单上的方法也要发生变动)
function food1() {
}
function food2() {
}
function food3() {
}
function food4() {
}
function order() {
}
order.prototype.orderFood1 = function() {
}
order.prototype.orderFood2 = function() {
}
order.prototype.orderFood3 = function() {
}
order.prototype.orderFood4 = function() {
}
//2.在菜和点单中间,抽象出一个餐馆层的代码(这样菜无论怎么变动都不会影响我们的点单,我们只需要改变一下抽象层餐馆)
function food1() {
}
function food2() {
}
function food3() {
}
function food4() {
}
function resturn(food) {
//餐馆
var list = {
//类似菜单
food1: new food1(),
food2: new food2(),
food3: new food3(),
}
return list[food];
}
function order(food) {
//点单
return resturn(food);
}
3. 设计模式的分类
总结
革命尚未成功,同志仍需努力。
