JavaScript设计模式
文章平均质量分 66
volit_
这个作者很懒,什么都没留下…
展开
-
JavaScript设计模式(九)状态模式 适配器模式
以上代码实现了一个基本的状态模式,状态的切换规律事先被定义好在各个状态类中,主体上无需关心切换的细节。如果日后又新增了一个状态,那我们只要编写好新的状态类,加入到原有代码中就可以了。(1)状态模式定义了状态与行为之间的关系,并将它们封装在一个类里。(2)避免Context无限膨胀,状态切换的逻辑被分布在状态类中,也去掉了Context中原本过多的分支。(4)Context中的请求动作和状态类中封装的行为可以非常容易地独立变化而互不影响。解决两个软件实体间接口不兼容问题。...原创 2022-08-13 09:56:52 · 102 阅读 · 0 评论 -
JavaScript设计模式(八)职责链模式 装饰者模式
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。原创 2022-08-12 15:56:21 · 65 阅读 · 0 评论 -
JavaScript设计模式(七)享元模式
** * 考虑一下优化程序,通过观察代码,产品对象实际上只需要两个就够了,每次只需要改变对象的编号 */没有内部状态的享元实际上就是一个单例,但是因为其还是有剥离外部状态的过程,因此我们仍然将其称为享元。享元模式要求将对象的属性划分为内部状态与外部状态。(4)外部状态取决于具体的场景,并根据场景而变化,外部状态不能被共享。(4)剥离出对象的外部状态之后,可以用相对较少的对象取代大量对象。没有外部状态的享元并不是一个纯粹的享元模式。(3)对象的大多数状态都可以变为外部状态。(2)没有外部状态的享元。...原创 2022-08-08 14:21:43 · 177 阅读 · 0 评论 -
JavaScript设计模式(六)模板方法模式
模板方法模式由两部分组成,第一部分是抽象父类,第二部分是具体的实现子类。通常在抽象父类中封装了子类的算法框架,包括实现一些公共方法以及封装子类中所有方法的执行顺序。子类通过继承这个抽象类,也继承了整个算结构,并且可以选择重写父类的方法。...原创 2022-08-08 11:38:03 · 308 阅读 · 0 评论 -
JavaScript中的设计原则
(1)代理模式 (2)迭代器模式 (3)单例模式 (4)装饰者模式(1)如果随着需求的变化,有两个职责总是同时变化,那就不必分离他们。 (2)职责的变化轴线仅当它们确定会发生变化时才具有意义,即使两个职责已经被耦合在一起,但它们还没有发生改变的征兆,那么也许没有必要主动分离他们。(1)优点:降低了单个类或者对象的负责度,按照职责把对象分解成更小的力度,这有助于代码的复用和单元测试。当一个职责需要变更时,不会影响到其他的职责。 (2)缺点:会增加编写代码的负责度。(1)中介者模式 (2)外观模式(1)发布-订原创 2022-08-06 15:14:14 · 352 阅读 · 2 评论 -
JavaScript设计模式(五)组合模式
以上代码实现了一个基本的组合模式,用户在使用扫描操作的时候,无需关心当前文件夹下的树结构,以及子文件夹和子文件的数量,且如果操作内容进行了改动,不需要在源代码上进行任何改动,它仍然能够按照原定行为进行操作。组合模式是一种HAS-A(聚合)的关系,组合对象包含一组叶对象,但叶对象并不是组合对象的子类。请求从树最顶端的对象往下传递,如果当前处理请求的对象是叶对象,叶对象自身会对请求作出相应的处理;(3)双向映射关系。组合模式就是用小的子对象来构建更大的对象,而这些小的子对象本身也许是由更小的“孙对象”构成的。.原创 2022-08-06 12:14:27 · 111 阅读 · 0 评论 -
JavaScript设计模式(四)命令模式
实现撤销命名非常简单,只需要在执行当前命令之前,将当前状态保存下来就可以了。使用撤销命名可以实现诸如文档操作中的(Ctrl+Z)等操作,但是以上代码还存在缺陷,即只能够撤回一次操作,因此我们通过引入堆栈来缓存每一次操作。有时需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是什么,此时希望用一种松耦合的方式来设计软件,使请求发送者和请求接收者能够消除彼此间的耦合关系。以上代码实现了一个基本的命名模式,但通常需要实现一个撤销命名undo来撤回修改操作,以下代码中实现。......原创 2022-08-05 21:02:51 · 57 阅读 · 0 评论 -
JavaScript设计模式(三) 迭代器模式 发布-订阅模式
迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露对该对象的内部表示。原创 2022-08-05 10:25:46 · 210 阅读 · 0 评论 -
JavaScript设计模式(二)策略模式 代理模式
定义一系列的算法,把它们各自封装成策略类,算法被封装在策略类内部的方法里。在客户对Context发起请求的时候,Context总是把请求委托给策略对象中间的某一个进行计算。原创 2022-08-04 20:32:53 · 111 阅读 · 0 评论 -
JavaScript设计模式(一)单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。原创 2022-08-04 11:43:13 · 173 阅读 · 0 评论