这是我在青训营的第6天,打卡的第四篇文章
什么是设计模式
设计模式是对面向对象设计中反复出现的问题的解决方案。这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握
设计模式就是为了解决某类重复出现的问题而出现的一套成功或有效的解决方案
分类:23种设计模式
- 创建型-如何创建一个对象
- 结构型-如何灵活将对象组装成较大的结构
- 行为型-负责对象间高效通信和职责划分
浏览器中的设计模式
- 单例模式:保证一个类仅有一个对象,并提供一个访问它的全局访问点
例子:缓存、全局状态管理
- 观察者模式:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。
例子:从系统架构之间的解耦,到业务中一些实现模式,像邮件订阅、上线订阅等等
const button = document.getElementById("button")
const doSomething = () => {
console.log("send message to user")
}
const doSomething2 = () => {
console.log("send message to user")
}
button.addEventListener("click",doSomthing)
javascript中的设计模式
迭代器模式(Iterator Pattern):提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示
原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象
代理模式(Proxy Pattern):为其他对象提供一个代理以控制对这个对象的访问
前端框架中的设计模式
代理模式(Proxy Pattern):为其他对象提供一个代理以控制对这个对象的访问
组合模式(Composite Pattern):将对象组合成树形结构以表示“部分-整体”的层次结构。Composite 使得客户对单个对象和复合对象的使用具有一致性
设计模式的原则:
1.开闭原则(Open Close Principle)
2.里氏代换原则(Liskov Substitution Principle)
3、依赖倒转原则(Dependence Inversion Principle)
4、接口隔离原则(Interface Segregation Principle)
5、迪米特法则,又称最少知道原则(Demeter Principle)
6、合成复用原则(Composite Reuse Principle)
7、单一职责原则