前端设计模式|青训营笔记

197 阅读2分钟

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

设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发过程中面临的一般问题的结局方案。这些解决方案是众多软件开发人员经过相当长的一段时间的经验和错误总结出来的。

1.单例模式

单例模式指的是保证一个类仅有一个实例,且提供一个访问它的全局访问点。全局缓存,window对象,都可以看作是一个单例。

(1)目的:

一个全局使用的类频繁地创建与销毁

(2)应用场景:

对于单例模式而言,其实有很多应用场景。 首先是redux中提供的全局应用的store,必须是一个单例模式,要不然我们没有办法在不同组件之间来协同数据同步。

其次,对于很多组件,比如说登录页面,数据的修改页面,购物车他们都必须只有一个实例对象否则就会有很多问题,比如购物车,我们一个用户不能有多个购物车,要不然清算起来很麻烦,甚至有的时候不知道去结算哪个购物车。

在ES6中,import 引入的模块是会自动执行的,但是有的时候我们可能会重复引入一个模块,但是这个时候不会执行多次,因为import就用到了SIngleton模式。

(3)总结

对于单例模式而言,其核心在于我们将创建对象的类,和控制单一对象的类分离开来,他们各自控制各自的功能。

2.迭代器模式

迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表达式。迭代器模式可以将迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即不用关心对象内部构造也可以按顺序访问其中的每个元素。

3.中介者模式

中介者指的是解除对象与对象之间的紧耦关系,增加中介者之后,所有对象通过中介者来通信,而不是互相引用,所以当一个对象发生改变时,只需要通知中介者对象即可。