这是我参与「第四届青训营 」笔记创作活动的第3天...
一、什么是设计模式
定义:设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。在面向对象软件设计过程中针对特定问题的优雅而简洁的解决方案。
二、为什么要了解设计模式
设计模式说白了就是前辈们对自己代码经验的总结,目的是为了让我们在遇到类似或相同的问题的时候有经验可以参考或借鉴使用,使得代码可复用、更容易被他人理解。\
- 设计模式可以让你知道在某些场景下如何设计出适合该场景的架子。如果只追求去实现一个功能,没有做其他的考虑,以后需要增加新功能或者做一些改动的时候,可能就会将代码改的面目全非,难以维护,不熟悉代码的人接手干活的话,会出现根本无从下手的问题;\
- 如果想要提高自己的能力,去学习一些框架或者库的源码的时候,了解设计模式也有助于去理解源码当中应用到的一些设计思想,帮助自己更好的成长;
三、前端中常见的设计模式
工厂模式
什么是工厂模式?工厂模式是用来创建对象的一种最常用的设计模式。我们不暴露创建对象的具体逻辑,而是将逻辑封装在一个函数中,那么这个函数就可以被视为一个工厂。说白了就是像工厂一样重复的产生类似的产品,工厂模式只需要我们传入正确的参数,就能生产类似的产品;
单例模式
什么是单例模式?限制类实例化次数只能一次,一个类只有一个实例,并且提供可全局访问的点。
单例模式的实现:保证一个类只有一个实例, 一般先判断实例是否存在,如果存在直接返回, 不存在则先创建再返回,这样就可以保证一个类只有一个实例对象。
发布-订阅模式
什么是发布-订阅模式?它定义了对象间的一种一对多的关系,让多个订阅者对象同时监听某一个主题对象,当一个对象发生改变时,所有依赖于它的对象都将得到通知。
装饰器模式
什么是装饰器模式?是为了给一个函数赋能,增强它的某种能力,它能动态的添加对象的行为,对现有的类对象进行包裹和封装,以期望在不改变类对象及其类定义的情况下,为对象添加额外功能。
适配器模式
什么是适配器模式?适配器用来解决两个已有接口之间不匹配的问题,它并不需要考虑接口是如何实现,也不用考虑将来该如何修改;适配器不需要修改已有接口,就可以使他们协同工作;