JavaScript设计模式
设计模式
也无风雨丶
这个作者很懒,什么都没留下…
展开
-
发布-订阅模式
发布—订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。 发布—订阅模式可以广泛应用于异步编程中,这是一种替代传递回调函数的方案。 比如,我们可以订阅 ajax 请求的 error、succ 等事件。或者如果想在动画的每一帧完成之后做一 些事情,那我们可以订阅一个事件,然后在动画的每一帧完成之后发布这个事件。在异步编程中使用发...原创 2019-05-27 22:30:41 · 166 阅读 · 0 评论 -
策略模式
策略模式的定义是:定义一系列的算法,把它们一个个封装起来,并且使它们可以互相替换。 策略模式可用于缓动动画,表单验证等方面。 下面的代码是用于表单验证的策略模式。 /*******************策略类********************/ var strategies = { isNonEmpty: function(value, errorMsg){ ...原创 2019-05-26 16:47:39 · 99 阅读 · 0 评论 -
原型模式
原型模式是一种用于创建对象的模式,原型模式不关心对象具体类型,而是通过克隆一个已有对象来创建新的对象。 JavaScript原型继承遵循以下规则: 所有数据都是对象。 得到一个对象,不是通过实例化类,而是通过克隆一个对象生成的。 对象会记住他的原型。 当一个对象无法响应一个请求时,会将该请求委托给自己的原型。 ...原创 2019-05-26 14:46:27 · 93 阅读 · 0 评论 -
职责链模式
职责链模式的定义是:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 假设我们负责一个售卖手机的电商网站,经过分别交纳 500 元定金和 200 元定金的两轮预定 后(订单已在此时生成),现在已经到了正式购买的阶段。 公司针对支付过定金的用户有一定的优惠政策。在正式购买后,已经支付过 500 元定金...原创 2019-05-30 21:34:11 · 184 阅读 · 0 评论 -
单例模式
JavaScript单例模式的核心是确保只有一个实例,并提供全局访问。 var getSingle = function(fn) { var result; return function() { return result || (result = fn.apply(this, arguments)); } } ...原创 2019-05-26 15:33:08 · 95 阅读 · 0 评论 -
装饰者模式
装饰者模式就是一种给对象动态添加职责的模式。装饰者模式能够在不改变对象自身的情况下,在程序运行期间动态的给对象添加职责。 我们可以使用AOP来装饰函数: Function.prototype.before = function(beforeFunc) { var _self = this; // 保存原函数的引用 return function() { // ...原创 2019-06-01 21:42:15 · 136 阅读 · 0 评论