前端为什么也要学习设计模式呢?
第一,通过一些设计模式,可以帮我们更好的组织模块间的组成结构。
第二,有些设计模式,可以我们更好的处理模块之间的数据沟通。
第三,通过设计模式,可以提高我们的代码质量,让代码更优雅。
设计模式其实就是设计原则的一些具体体现而已,是一种实现了设计原则的套路。
我们了解一下设计原则对我们学习和掌握设计模式很有帮助。
开闭原则:我们的程序要对扩展开放,对修改关闭。程序要给出具体使用的时候扩展功能的接口,但是在具体使用的时候,不允许修改我们模块具体的源码。
像vue,react他们都留出了很多扩展接口,
单一职责原则这个原则就是说我们的模块只做一件事情。
依赖倒置原则我们的上层模块不应该依赖具体的下层模块,而应该依赖于抽象。举个最简单的例子,你吃饭会选择去哪个餐馆吃,而不会选择西红柿吃,或者鸡蛋吃。
具体说就是上层的接口不会被下层的接口影响到。常用的做法就是在上层和下层接口之间加一个抽象层。如果下层接口有变动,只需要修改抽象层。
function food1(){}
function food2(){}
function food3(){}
// 抽象层,针对不同的食物创建不同的实例
function createFood(food){
let list = {
food1:new food1(),
food2:new food2(),
food3:new food3()
}
return list[food]
}
// 上层接口
function order(food){
return createFood(food)
}
接口隔离原则就是接口应该细化,功能应该单一。不要一个接口调用太多的方法。
最少知识原则我们如果让两个对象之间去沟通,那么要让两个对象之间互相知道的内容越少越好。
里氏替换原则这个原则更关注于继承。其实就是任何使用父类的地方,都可以使用子类去替换。
其实就是说子类去继承父类的时候,一定要完全继承父类所有的属性。
这六大设计原则,完全可以作为我们写代码和开发过程中的指导原则。如果能了解熟悉这六大设计原则,在学习设计模式的时候,也更能体会到不同设计模式的产生原因和解决什么问题。