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. 设计模式的分类

总结

革命尚未成功,同志仍需努力。

经验分享 程序员 微信小程序 职场和发展