前端设计模式应用|青训营笔记
这是我参与「第四届青训营 」笔记创作活动的第3天
一、什么是设计模式
- 模式是一种可服用的解决方案,用于解决软件设计中遇到的常见问题。
- 设计模式是软件设计中常见问题的解决方案模型
- 是历史经验的总结
- 与特定语言无关
二、设计模式的分类及原则
三大分类:
-
创建型——如何创建一个对象
- 工厂模式
- 抽象工厂
- 建造者
- 原型
- 单例模式
-
结构型——如何灵活的将对象组装成较大的结构
- 适配器模式
- 桥接模式
- 装饰器模式
- 外观模式
- 享元模式
- 代理模式
-
行为型——负责对象间的高效通信和职责划分
六大原则:
- 单一职责原则: 一个类应该只有一 个发生变化的原因。
- 开闭原则:一个软件实体,如类、模块和函数应该对扩展开放,对修改关闭。
- 氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象,即子类对象可以替换其父类对象,而程序执行效果不变。
- 迪米特法则:又叫作最少知识原则,即一个类对于其他类知道的越少越好。
- 接口隔离原则:多个特定的客户端接口要好于一个通用性的总接口
- 依赖倒置原则:
1.上层模块不应该依赖底层模块, 它们都应该依赖于抽象。
2.抽象不应该依赖于细节,细节应该依赖于抽象
三、浏览器中的设计模式
单例模式
- 定义:全局唯一访问对象
- 应用场景:缓存,全局状态管理等
发布订阅模式
- 定义:一种订阅机制,可在被订阅对象发送变化时通知订阅者。
- 应用场景:从系统架构之间的解耦,到业务中一些实现模式,像邮件订阅,上线订阅等等,应用广泛。
四、JavaScript中的设计模式
原型模式
- 定义:复制已有对象来创建新的对象
- 应用场景:JS中对象创建的基本模式
代理模式
- 定义:可自定义控制对原对象的访问方式,并且允许在更新前后做一些额外处理
- 应用场景:监控,代理工具,前端框架实现等等
五、总结
学习前端设计模式应用,通过理解不同的设计模式在不同的场景中应用。我们不需要把设计模式中所有的东西全应用到页面中,而是通过了解设计模式,让代码变得易读,易扩展,易维护。
通过学习前端基础的内容,熟悉各种设计的原理、理念、代码规范、设计模式,通过日常的开发和阅读中,不断实践,培养自己的代码质量和设计意识。
通过了解每个设计模式的原始起源的定义可以更好的理解,为何会有这样的设计模式,这样的理念是怎么产生的。过时的设计模式,我们应该如何在实际的开发场景中进行改进,应用到我们实际的开发场景中。传统的设计模式,可能在现在看来已经过时,但是不免成为设计模式学习的基础。