Please enable JavaScript.
Coggle requires JavaScript to display documents.
JavaScript设计模式 (策略模式:定义一系列算法,把它们封装起来,使它们可以互相覆盖 (利用组合、委托和多态避免多重选择,…
JavaScript设计模式
策略模式:定义一系列算法,把它们封装起来,使它们可以互相覆盖
利用组合、委托和多态避免多重选择
封装strategy符合开闭原则
高复用性
使 context具有执行算法能力
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点
分离init和单例
透明化单例, 使用new实例化
惰性单例
享元模式:运用共享技术来有效支持大量细粒度的对象
内部状态
外部状态
two-headed classes
命令模式:命令指的是一个执行某些
特定事情的指令,解除接收者和发送者之间耦合
有execute接口的Command对象
宏命令
组合模式:用小的子对象来构建更大的对象
#
表示对象整体-层次
统一组合对象和叶子对象接口
模板方法:抽象父类中封装了子类的算法框架,由子类具体实现
抽象父类
钩子方法
职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止
节点(Chain)
AOP
状态模式:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类
封装状态类
context类
代理模式:为一个对象提供一个代用品或占位符,以便对它的控制。把一些开销很大的对象,延迟到真正需要的时候才去创建
代理和本体接口一致
发布-订阅模式:当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知
中介者模式:所有的 相关对象都通过中介者对象来通信