欢迎访问我的个人博客,效果更佳哟!

https://www.cnblogs.com/canghaiyimeng/

javaScript 设计模式

创建型设计模式

  • 简单工厂模式:创建对象
  • 工厂方法模式:时间创建对象工作推迟到子类中,核心类成为了抽象类

      安全工厂方法

var Factory = function (type,content){
    if(this instanceof Factory)if{
        var s= new this[type](content);
        return s;
    }else{
 
         return new Factory(type,content);
    }   
} 
Factory.protptype={}
  • 抽象工厂:通过对类的工厂抽象,使其业务用于地产品簇的创建,而不负责任的创建某一类产品的实例
  •  建造者模式: 将一个复杂对象的构建层预期表示层相互分离,同样的构建过程不同的表示
  • 原型模式:用原型实例指向创建对象的类,使用于创建新的对象的类共享原型对象的属性及方法
  • 单例模式:又称为单体模式、只允许实例化一次的对象类。常常用来规划命名空间。

结构型设计模式

  • 外观模式:为一组复杂的子系统接口提供一个更高级的统一接口,通过这个接口使得对子系统接口的访问更容易
  • 适配器模式:讲一个类(对象)的接口(方法或者属性)转换为另一个接口,以满足用户需求
  • 代理模式:由于一个对象不能直接引用这个对象,所以需要通过dialing对象在这两个对象之间起到中介的作用
  • 装饰者模式:在不改变原有对象的基础上,通过对齐进行包装和拓展(添加属性和方法),使原有的对象和方法可以满足用户的更复杂需求
  • 桥接模式:在系统沿着多为变化的同时,又不增加齐复杂度,并已经达到解耦。
  • 组合模式:又称为部分整体模式,将对象组合成属性结构以表示部分整体的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性
  • 享元模式: 运用共享技术有效的支持大量的细粒度的对象,避免对象之间有相同内容造成多余的开销

行为设计模式

  • 模板方法模式:父类中定义一组操作算法骨架,而将一些实现步骤延迟的子类中,使得子类可以不改变父类的算法结构的同时可以重新定义算法中某些实现步骤
  • 观察者模式,有才能为发布订阅者模式或消息机制,定义了一种依赖关系,解决了主体对象与观察者之间功能的耦合
  • 状态模式:当一个对象内部状态发生改变是,会导致其行为的改变,看起来像是改变了对象
  • 策略模式:将定义的一组算法封装起来,使其相互之间可以替换,封装的算法具有一定的独立性,不会随着客户端的变化而变化
  • 职责链模式:解决请求的发送者与请求者的接受者之间的耦合,通过职责链上的多个对象那个的分解请求流程 ,实现请求在多个对象之间的传递,直到最后一个对象完成请求的处理
  • 命令模式:将请求与实现解耦并封装成独立的对象,从而使不同的请求对客户端实现参数化
  • 访问者模式:针对于对象结构中的元素,定义在不改变该对象的前提下访问结构中元素的新方法
  • 中介者模式:通过中介者对象封装一些列对象之间的交互,使用对象之间不再相互引用,降低他们的耦合。有时候中介者对象也可以改变对象之间的交互
  • 备忘录模式:在不破坏对象的封装性前提下,在对象之外捕获并保存该对象内部的状态以便日后对象使用或者对象恢复到之前的某个状态
  • 迭代器模式: 在不暴露对象内部结构的同时,可以顺序的访问聚合对象内部的元素
  • 解释器模式:对于一种语言,给出其文法表示形式,并定义一种解释器,通过这种解释器来解释语言中定义的句子
  • 连模式:通过对象方法将当前对象返回,实现对同一个对象多个方法的链模式调用,从而简化对该对象的的多个方法的多次调用时,对该对象的多次引用。
  • 委托模式:多个对象接收并处理同一个请求,他们将请求委托给另个一个对象统一处理请求
  • 数据访问对象模式:抽象和封装对数据源的访问与存储,DAO 通过对数据源链接的 管理方便对数据的访问和存储
  • 截流模式:对重复业务进行节流控制,执行最后一次操作并取消其他操作,以便提高性能
  • 简单模板模式:通过格式化字符创串拼凑出试图,避免创建视图时大量节点操作,优化内存开销
  • 惰性模式:减少每次代码执行时重复性的分支判断,通过对对象重定义来屏蔽原对象中的分支判断
  • 参与者模式:在特定作用域中指定给定的函数,并将参数原封不动的传递、
  • 等待者模式:通过多个异步进程监听,来出发未
  • 来发生的动作

架构设计模式

  • 同步模块化模式:将复杂的系统分解成高内聚、低耦合的模块,使系统开发变得可控、可维护、可拓展、提高模块的复用率(SMD 请求发出后,无论模块是否存在,立即执行后续逻辑,实现模块开发对模块的立即引用
  • 异步模块模式:将复杂的系统分解成高内聚、低耦合的模块吗,使系统开发变得可控、可维护、提高模块的复用率(异步模块模式,请求发出后继续其他业务逻辑,知道模块加载完成执行后续的逻辑,实现模块开发中对模块加载完成后的引用)
  • widget 模式:借用web widget 思想将页面分解成部件,针对部件开发,最终组合成完整的页面
  • MVC 模式: 视图、控制器、模型,用一种业务逻辑、数据、视图分离的方式组织架构代码
  • MVP模式: 模型、视图、管理器:View 层不直接引用Model 层内的数据,而是通过Presenter 实现对Model 层的数据访问,多有层次的交互都发生在Presenter 层中
  • MVVM: 模型、视图、视图模型 : 为视图层量身定做一套视图模型,并在视图中创建属性和方法、为视图层绑定数据并实现交互
posted @ 2018-09-21 17:31  沧海亦梦  阅读(84)  评论(0编辑  收藏  举报