【设计模式】
神以灵
渴望成为前端大神的一个noob~~~
(https://github.com/shenyiling)
展开
-
JavaScript之装饰者模式
装饰者模式装饰者模式用于为对象动态增加职责。和继承的比较相较于装饰者模式而言,继承导致超类和子类之间的强耦合,超类修改,子类也会随之改变,同时在功能需求增加时,可能会创建出大量的子类。装饰者模式则更加灵活,即用即增。example对于需求的增加,我们经常做的处理是直接修改某个对象或某个函数,这很不好,违背了开放-封闭原则。以飞机大战中的飞机对象为例,不同级别的飞机发送不同的子弹,普通...原创 2019-05-28 09:21:51 · 124 阅读 · 0 评论 -
策略模式之封装表单验证
有关策略模式的简单介绍可以查看这篇文章:介绍// 校验策略const validateStrategies = { isMobile(value, errMsg) { if ( !/^1([38]\d|5[0-35-9]|7[3678]|99|4[579])\d{8}$/.test(value) ) { return errMsg ...原创 2019-03-24 22:43:15 · 266 阅读 · 0 评论 -
JavaScript之策略模式
定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。一个策略模式的实现至少包含两部分:1.策略类,封装了具体的算法,负责具体计算过程。2.环境类,接收客户的请求,将请求委托给某个策略类处理。比如下面的场景:一个公司需要计算年终奖,不同绩效的员工年终奖计算方式不同,绩效S的员工,年终奖为4倍工资,绩效A年终奖为3倍工资,绩效B年终奖为2倍工资。代码实现:functio...原创 2019-03-24 21:32:01 · 286 阅读 · 0 评论 -
JavaScript中的单例模式
定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式对于一些全局唯一的对象很有用,避免创建多个对象造成资源浪费,例如:线程池、全局缓存、浏览器中的window对象等。在JavaScript中实现单例模式可以有多种写法,下面以创建一个全局弹窗为例:const Singleton = function (name) { this.name = name this...原创 2019-03-15 16:10:18 · 319 阅读 · 0 评论 -
JavaScript面向对象之多态
多态(polymorphism = poly(复数) + morph(形态) + ism)的定义:同一操作作用于不同的对象上面,可以产生不同的解释和执行结果。文字含义很容易理解,但往往在需要使用时却想不起它。真正的想要灵活使用一个设计思想,结合一些通俗易懂的例子或者编码过程中遇见的问题是一个不错的使用方案。举个例子: ...原创 2019-03-15 09:38:08 · 393 阅读 · 0 评论 -
JavaScript之发布订阅模式
发布订阅模式发布订阅模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。通过它,不必定时的去查询监听对象的状态是否发生改变。在发布订阅模式中,我们经常定义一个事件中心来管理所有事件的发布和订阅。这也是和观察者模式最主要的区别。观察者模式中只有两个角色,观察者和被观察者,两者之间存在一定的耦合关系。发布订阅模式,则有三个角色,发布者、订阅者和事...原创 2019-06-09 01:31:08 · 303 阅读 · 0 评论