All Projects → jixianu → JS-design-patterns

jixianu / JS-design-patterns

Licence: other
设计模式

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
PHP
23972 projects - #3 most used programming language

《javascript设计模式》--张容铭(源码和学习总结)

参考资料:《javascript设计模式》--张容铭
内容主要包含本书的全部源码,并包含了书内知识点的摘录和总结

####第一篇 面向对象编程

  • 第1章 灵活的语言-介绍JS语言

  • 第2章 写的都是看到的-面向对象编程
    类、闭包、安全模式、类式继承、构造函数继承、原型继承、寄生继承、寄生组合式继承、单继承、多态

####第二篇 创建型设计模式

  • 第3章 神奇的魔术师-简单工厂模式

  • 第4章 给我一张名片-工厂方法模式
    安全工厂模式

  • 第5章 出现的都是幻觉-抽象工厂模式
    抽象出公共方法,在公共方法中return new Error()

  • 第6章 分即是合-建造者模式-简历模块
    根据传参在构造函数中使用switch判断进行相应的处理

  • 第7章 语言之魂-原型模式-焦点图
    用原型实例指向创建对象的类,使用于创建新的对象的类共享原型对象的属性以及方法

  • 第8章 一个人的寂寞-单例模式-滑动模块命名空间 只允许实例化一次的对象类 第三篇结构型设计模式

####第三篇 结构型设计模式

  • 第9章 套餐服务-外观模式-绑定事件
    为一组复杂的子系统接口提供一个更高级的统一接口,通过这个接口使得对子系统接口的访问更容易。在JavaScript中有时也会用于对底层结构兼容性做统一封装来简化用户作用

  • 第10章 水管弯弯-适配器模式 将一个类(对象)的接口转化成另外一个接口,以满足用户需求,使类(对象)之间接口的不兼容问题通过适配器得以解决

  • 第11章 牛郎织女-代理模式-图片跨域
    由于一个对象不能直接饮用另一个对象,所以需要通过代理对象在这两个对象之间起到中介的作用

  • 第12章 房子装修-装饰者模式-输入框
    在不改变原对象的基础上,通过对其惊醒包装拓展(添加属性或方法)使原有对象可以满足用户的更复杂需求

  • 第13章 城市间的公路-桥接模式-用户信息模块
    在系统沿着多个维度变化的同时,又不增加其复杂度并已达到解耦

  • 第14章 超值午餐-组合模式-新闻模块
    又称整体模式,将对象组合成树形结构以表示“部分整体”的层次机构,组合模式使得用户对单个对象和组合对象的使用具有一致性

  • 第15章 城市公交车-享元模式-分页
    运用共享技术有效地支持大量的细粒度的对象,避免对象间拥有相同内容造成多余的开销

####第四篇 行为型设计模式

  • 第16章 照猫画虎-模板方法模式-提示框
    父类中定义一组操作算法骨架,而将一些实现步骤延迟到子类中,使得子类可以不改变父类的算法结构的同时可重新定义算法中的某些实现步骤

  • 第17章 通信卫星-观察者模式-留言模块
    又称作发布-订阅者模式或消息机制,定义了一种依赖关系,解决了主体对象与观察者之间的功能的耦合
    (17.6源码编写有问题,应该html部分有没写到的地方)

  • 第18章 超级玛丽-状态模式-多种状态判断
    当一个对象的内部状态发生改变时,会导致其行为的改变

  • 第19章 活诸葛-策略模式-状态模式的升级、表单验证
    将定义的一组算法封装起来,使其相互之间可以替换

  • 第20章 有序车站-职责链模式-请求相应操作分开 解决请求的发送者与请求的接收者之间的耦合,通过职责链上的多个对象对分解请求 流程,实现请求在多个对象之间的传递,知道一个对象完成请求的处理

  • 第21章 命令模式-图片展示 -将请求与实现解耦并封装成独立对象,从而使不同的请求对客户端的实现参数化

  • 第22章 驻华大使-访问者模式-ie绑定事件,类数组对象有序操作属性
    针对于对象的结构中的元素,定义在不改变该对象的前提下访问结构中元素的新方法

  • 第23章 媒婆-中介者模式-导航模块设置层样式
    通过中介者对象封装一系列对象之间的交互,使对象之间不相互作用,降低他们之间的耦合。有时中介者对象也可改变对象之间的交互

  • 第24章 做好笔录-备忘录模式-对请求之前的数据进行缓存
    在不破坏对象的封装性的前提下,在对象之外捕获并保存该对象内部的状态以便日后对象使用或者对象恢复到以前的某个状态

  • 第25章 点钞机-迭代器模式-编写循环DOM节点函数,获取DOM
    在不暴露对象内部结构的同时,可以顺序地访问聚合对象内部的元素

  • 第26章 语言翻译-解释器模式-Xpath解析器
    对于一种语言,给出其文法表示形式,并定义一种解释器,通过使用这种解释器来解释语言中定义的句子

####第五篇 技巧型设计模式

  • 第27章 永无尽头-链模式-jquery链式编程 通过在对象方法中将当前对象返回,实现对统一个对象多个方法的链式调用。从而简化对该对象的多个方法的多次调用时,对该对象的多次引用
    //jquery链式编程的实现,就不写代码了

  • 第28章 未来预言家-委托模式-事件委托
    多个对象接收并处理同一请求,他们将请求委托给另一个对象同一处理请求

  • 第29章 数据管理器-数据访问对象模式-LocalStorage本地存储数据管理 抽离和封装对数据源的访问与存储,DAO通过对数据源链接的管理方便对数据的访问与存储

  • 第30章 执行控制-节流模式-滚动事件只执行第一次 对重复的业务逻辑进行节流控制,执行最后一次操作并取消其他操作,以提高性能

  • 第31章 卡片拼图-简单模板模式

  • 第32章 机器学习-惰性模式

  • 第33章 异国战场-参与者模式

  • 第34章 入场仪式-等待者模式

  • 第六篇架构型设计模式

  • 第35章 死心眼-同步模块模式

  • 第36章 大心脏-异步模块模式

  • 第37章 分而治之-Widget模式

  • 第38章 三人行-MVC模式

  • 第39章 三军统帅-MVP模式

  • 第40章 视图的逆袭-MVVM模式

##常用的设计模式 腾讯团队常用设计模式

  • 单例模式
  • 简单工厂模式
  • 观察者模式
  • 适配器模式
  • 代理模式
  • 桥接模式
  • 外观模式
  • 访问者模式
  • 策略模式
  • 模版方法模式
  • 中介者模式
  • 迭代器模式
  • 组合模式
  • 备忘录模式
  • 职责链模式
  • 享元模式
  • 状态模式

Tom大叔的博客设计模式

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].