小宝宝也一看就会的前端设计模式 | 青训营笔记

122 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的第5天

前言

众所周知,作为一个好的软件,我们需要很多优秀的设计模式来进行支撑。所以这节课我们就来学习在前端中的设计模式。这类东西的理论性更强一些,所以我们只能在行文中介绍这个东西究竟是怎样的,具体的代码实现还需要同学们多亲自敲一敲。

浏览器中的设计模式

单例模式

在面向对象编程中,我们一定需要创建若干个类的若干个实例。但是有的时候我们对于某些类只需要一个实例,我们并不需要再创建,那么我们就需要用到单例模式。我们在浏览器中需要一些全局唯一访问对象,代表缓存或者全局状态管理等,这时就需要用单例模式来构建这类唯一的对象。具体表现在:我们给一个类设置私有的构造函数,确保外部其他模块不会创建新的实例,然后再用GetInstance方法获取其引用。

发布订阅模式

这种设计模式顾名思义,就是一种类似于订阅机制的设计模式:每个用户都有各自订阅的东西,互不打扰。这就需要我们系统之间的耦合度足够低,一个用户的操作对另一个用户没有任何的影响。一般都用在类似的订阅服务中。

JavaScript中的设计模式

原型模式

这东西看起来非常的洋气,但是实际上很简单:我们通过复制已经有的对象来创建新的对象。就是JS中创建对象中最基本的模式,没什么好说的。

代理模式

代理模式,顾名思义就是为其他对象提供一种代理以控制对这个对象的访问。这样做就可以自定义控制对原对象的访问方式,并且允许在更新前后做一些额外处理。

迭代器模式

迭代器模式就是我们可以在遍历一个聚合对象中的所有实例的时候,可以通过一个统一的接口,而不需要对于每一个聚合对象(如数组、链表等)进行专门的修改,也可以在不暴露数据类型的情况下访问集合中的数据。最典型的例如foreach其实就是这种设计模式的体现。

总结

如果想系统学习关于设计模式的知识的话,可以去学习软件工程或者其他的相关知识,并辅以众多的项目训练。这样才能把各种陌生的名词细化成自己的东西。