javascript设计模式
mjzhang1993
风起于青萍之末
展开
-
Javascript设计模式-18-状态模式
Javascript设计模式 - 18 - 状态模式简介 状态模式的关键是区分事物内部的状态,事物内部状态的改变往往会带来事物的行为改变 通常我们谈到封装,一般都会优先封装对象的行为,而不是对象的状态,但在状态模式中刚好相反,状态模式的关键是把事物的每种状态都封装成单独的类,跟此种状态有关的行为都被封装在这个类的内部,执行上下文中,请求直接委托给状态对象,该状态对象会负责渲染它自身的行原创 2017-08-21 12:20:29 · 1101 阅读 · 0 评论 -
Javascript设计模式-06-代理模式
Javascript设计模式 - 06 - 代理模式简介 代理模式就是为其他对象提供一种代理(代用品或者占位符),以控制对这个对象的访问,代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口,以便在任何时候都能代替真实的对象分类(保护代理、虚拟代理、缓存代理) 保护代理:就是起到保护作用,一般用来过滤掉一些不必要的请求,将真正需要的递给本体原创 2017-07-12 09:50:21 · 534 阅读 · 0 评论 -
Javascript设计模式-05-外观模式
Javascript设计模式 - 05 - 外观模式简介 外观模式为子系统中的一组接口提供了一个一致的界面,此模块定义了一个高层接口,这个接口使得这一子系统更加容易使用,他可以将一些复杂的操作封装起来,并创建一个简单的接口用于调用个人理解 主要用于接口封装、兼容性封装、遗留代码封装代码 function addEvent(dom, type, fn) { if (d原创 2017-07-12 09:49:58 · 609 阅读 · 0 评论 -
Javascript设计模式-03-建造者模式
Javascript设计模式 - 03 - 建造者模式简介 建造者模式可以将一个复杂的对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示,用户只要指定需要建造的类型,其他具体的建造过程和细节不需要知道,就可以得出对应的结果,总结:拆解流程,各司其职作用和注意事项 作用分步骤构建一个复杂的对象解耦封装过程和具体创建的组件无需关心组件如何组装提供一种封装机制来隔离出复杂对象的原创 2017-07-11 14:22:38 · 1142 阅读 · 0 评论 -
JavaScript设计模式-02-单例模式
Javascript 设计模式 - 02 - 单例模式简介 单例就是保证一个类只有一个实例,实现的方法一般是先判断实例是否存在,如果存在直接返回,如果不存在就创建了再返回,确保了一个类只有一个实例对象,在JavaScript里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问点来访问该对象作用和注意事项 作用模块间通信在系统中某个类的对象只能存在一个保护自己的属性和方法,原创 2017-07-11 14:22:16 · 590 阅读 · 0 评论 -
JavaScript设计模式-01-原型模式
Javascript 设计模式 - 01 - 原型模式简介 原型模式实际上也是一种继承,可以让多个对象分享同一个原型对象的属性和方法,这种继承的实现是不需要创建的,而是将原型对象分享给那些继承的对象,原型模式是一种用来创建对象的模式 在以类为中心的语言中,要创建一个对象首先要指定这个对象的类型,然后实例化一个对象,使用原型模式创建对象时不必关心对象的具体类型,而是找到一个对象,然后通过原创 2017-07-11 14:21:24 · 738 阅读 · 0 评论 -
Javascript设计模式-13-模板方法
Javascript设计模式 - 13 - 模板方法简介 父类中定义一组操作算法骨架,而将一些实现步骤延迟到子类中,使得子类可以不改变父类的算法结构的同时可重新定义算法中某些实现步骤理解 模板方法是基于继承的设计模式,可以很好的提高系统扩展性,由两部分组成,一个是抽象父类,第二部分是具体的实现子类,使用该设计模式意味着子类放弃了对自己的控制权,而是改为父类通知子类,作为子类只负责提供一些设原创 2017-07-11 14:19:53 · 772 阅读 · 0 评论 -
javascript设计模式--设计原则
JavaScript设计模式 – 设计原则说明 可以说每种设计模式都是为了让代码迎合其中一个或者多个原则而出现的,他们本身已经融入到了设计模式之中单一职责原则(SRP)最少知识原则(LKP)(迪米特法则)开放-封闭原则(OCP)里氏转换原则依赖倒转原则1. 单一职责原则(SRP) 指的是,对一个类而言(包括对象和函数),应该仅有一个引起它变化的原因,如果一个对象承担了多项职责,就意原创 2017-08-25 12:15:25 · 980 阅读 · 0 评论 -
JavaScript设计模式--高阶函数
JavaScript 设计模式–高阶函数杂项1. 封装判断数据类型 // 封装判断数据类型 var Type = (function () { var Temp = {}; for (var i = 0, type; type = ['String', 'Array', 'Number', 'Function', 'Object'][i]; i++) {原创 2017-08-25 12:16:05 · 599 阅读 · 0 评论 -
Javascript设计模式-07-观察者模式(发布订阅模式)
Javascript设计模式 - 07 - 观察者模式简介 观察者模式又叫发布订阅模式,他定义了一种一对多的关系,让多个观察者对象同时监听某一个主体对象,这个主体对象发生改变时就会通知所有观察者,使得他们能够自动更新自己 提供一种抽象的策略,以便订阅者能供彼此独立的应对改变 function Platform () { this.chann原创 2017-07-12 09:51:22 · 498 阅读 · 0 评论 -
Javascript设计模式-08-策略模式
Javascript设计模式 - 08 - 策略模式简介 策略模式定义了一系列算法,从概念上来说,所有的这些算法都是做相同的事情,只是实现不同,他可以以相同的方式调用所有的方法,减少了各种算法与使用算法之间的耦合,单独定义算法类,方便单元测试 不仅可以封装算法,也可以封装任何类型的规则个人理解 将算法封装成功能块 – 一个具有多种键的json对象,这个功能块的调用使用统一的方法,原创 2017-07-12 09:51:42 · 631 阅读 · 0 评论 -
Javascript设计模式-04-工厂模式
Javascript设计模式 - 04 -工厂模式(简单工厂,抽象工厂)简介 工厂模式定义一个用于创建对象的接口,这个接口由子类决定实例化哪一个类,该模式使一个类的实例化延迟到了子类,而子类可以重写接口方法以便创建的时候指定自己的对象类型个人理解 简单工厂模式接受一个命令,然后将命令的处理分离出去,命名处理函数接受不同的命令,或者根据不同的环境返回不同的对象,返回的对象会在工厂中绑定一些公原创 2017-07-13 09:39:01 · 673 阅读 · 0 评论 -
Javascript设计模式-17-装饰者模式
Javascript 设计模式 - 17 - 装饰者模式简介 装饰者模式可以动态的给某个对象添加一些额外的职责,而不会影响从这个类中派生出的其他对象优势传统的面向对象语言中,给对象添加功能常常使用继承的方式,但是继承的方式并不灵活,还会带来许多问题:一方面导致超类和子类之间存在强耦合性,当超类改变时,子类页随之改变;另一方面,继承方式中,超类的内部细节对子类式可见的,破坏了封装性装饰者模式原创 2017-08-18 16:31:04 · 556 阅读 · 0 评论 -
Javascript设计模式-16-中介者模式
Javascript 设计模式 - 16 - 中介者模式简介 中介者模式的作用就是解除对象与对象之间的紧耦合关系,增加一个中介者对象后,所有相关的对象都通过中介者对象来通信,而不是相互引用,所以当一个对象发生改变时,只需要通知中介者对象即可,中介者模式使得网状的多对多关系变成了相对简单的一对多关系 下边例子借用了 《javascript 设计模式与开发实践》优缺点中介者模式使得各个原创 2017-08-18 15:19:13 · 671 阅读 · 0 评论 -
Javascript设计模式-15-享元模式
Javascript设计模式 - 15 - 享元模式说明 享元模式是一种用于性能优化的模式,它的核心是运用共享技术来有效支持大量细粒度的对象 下边例子借用了 《javascript 设计模式与开发实践》内部状态和外部状态 享元模式要求将对象的属性划分为内部状态与外部状态(状态指的是属性),享元模式的目标是减少共享对象的数量状态划分内部状态存储于对象内部内部状态被一些对象共享原创 2017-08-18 13:37:08 · 495 阅读 · 0 评论 -
Javascript设计模式-14-组合模式
Javascript设计模式-14-组合模式简介 在程序设计中华,有一些和 ‘事物是由相似的子事物构成’类似的思想,组合模式就是用小的子对象来构建更大的对象,而这些小的子对象本身也许是由更小的“孙对象”构成用途 组合模式将对象组合成树形结构,以表示部分整体的层次,通过对象的多态性表现,使得用户对单个对象和组合对象的使用具有一致性请求在树中传递的过程 请求会沿着树形结构从请求其实节点向原创 2017-08-17 16:18:39 · 473 阅读 · 0 评论 -
Javascript设计模式-12-适配器模式
Javascript设计模式 - 12 - 适配器模式简介 适配器模式就是,讲一个类的接口转换成客户希望的另外一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作作用 当使用一个已存在的对象,但其方法或接口不符合你的要求适配器模式与代理模式区别适配器模式使用原因一般是新旧接口不一致,出现客户端无法满足的问题,但是由于旧的接原创 2017-07-13 09:40:37 · 558 阅读 · 0 评论 -
Javascript设计模式-11-职责链模式
Javascript设计模式 - 11 - 职责链模式简介 职责链是使多个对象都有机会处理请求,从而避免发送者和接受者之间的耦合关系,将这个对象练成一条链,并沿着这条连传递该请求,直到有一个对象处理它为止 链中收到请求的对象要么亲自处理它,要么转发给下一个候选者,提交方并不明确有多少个对象会处理它,任意候选者都可以响应响应的请求,可以在运行时决定哪些候选者参与到链中原创 2017-07-13 09:40:14 · 451 阅读 · 0 评论 -
Javascript设计模式-10-迭代器模式
Javascript设计模式 - 10 - 迭代器模式简介 提供一种方法,顺序访问一个聚合对象中各个元素,而又不需要暴露该方法中的内部表示作用 为遍历不同的集合结构提供一个统一的接口,从而支持同样的算法在不同的集合结构上进行操作解决问题 将复杂的对象进行封装,对外提供简单的使用方法,使用者不需要知道如何组织数据,就可以单纯的获取数据并进行下一步处原创 2017-07-13 09:39:54 · 495 阅读 · 0 评论 -
Javascript设计模式-09-命令模式
Javascript设计模式 - 09 - 命令模式简介 将执行的命令封装,解决命令发起者与命令执行者之间的耦合,每一条命令表示着一系列的操作,命令的使用者不必了解命令执行者的命令接口是如何实现的,只需要知道如何调用 var command = { click: function (msg) { console.log('cl原创 2017-07-13 09:39:28 · 640 阅读 · 0 评论 -
Javascript设计模式-00-说明
JavaScript 设计模式说明 总结了一下 设计模式在 JavaScript 中的应用,最近在看《JavaScript 设计模式与开发实践》,还没有看完,随时都会对这篇博客进行修改。简介 设计模式,是一套被反复利用、思想成熟、经过分类和无数实践设计经验的总结,使用设计模式是为了让系统代码可重用、可扩展、可解耦、更容易被人理解且能保证代码可靠性,设计模式使代码开发真正工程化。设计原则原创 2017-07-11 14:20:38 · 862 阅读 · 0 评论