设计模式
这里应用选择的是前端
创建型模式
单例模式(Singleton Pattern)
一个类只能构造出唯一实例,应用
弹窗;
工厂方法模式(Factory Pattern)
定义一个创建对象的接口,子类决定实例化哪个类。应用
: jquery 的$()
抽象工厂模式(Abstract Factory Pattern)
提供一个创建相互依赖对象的接口,应用
:之前做过连续展示的弹窗都有共同的next,pre,同时实现一个接口。
建造者模式(Builder Pattern)
将一个复杂对象的构建过程与其表示分离,同样的构建过程可以创建不同的表示。 应用
构建复杂的表单
原型模式(Prototype Pattern)
复制现有对象来创建新对象。应用
: 深拷贝。
结构型模式
适配器模式(Adapter Pattern)
用于将一个类的接口转换成另一个类的接口,应用
将数据转成统一格式。
装饰器模式(Decorator Pattern)
给对象添加一些额外的功能 应用
ts可以使用@expression
外观模式(Facade Pattern)
用于为子系统提供一封装, 复杂UI库提供简单易用的API。
桥接模式(Bridge Pattern)
将抽象部分与实现部分分离,使它们可以独立地变化。 应用
例如将UI组件的样式与行为分离。
组合模式(Composite Patter)
用于将对象组合成树形结构,``应用
打印文档结构
享元模式(Flyweight Pattern)
共享相同的图标、共享相同的样式
代理模式(Proxy Pattern)
用于控制对某个对象的访问。 应用
图片懒加载
行为型模式
策略模式(Strategy Pattern)
根据不同条件选择不同的策略。 应用
表单验证
模板方法模式(Template Method Pattern)
用于定义一个算法骨架,而将一些步骤延迟到子类中实现,例如封装通用的数据请求流程。
观察者模式(Observer Pattern)
当一个对象状态改变时,会通知所有依赖它的对象。 应用
例如实现事件监听
迭代器模式(Iterator Pattern)
用于顺序访问聚合对象中的元素,应用
遍历数组。
访问者模式(Visitor Pattern)
在不改变该对象的前提下访问其结构中元素的新方法。 应用
babel插件
中介者模式(Mediator Pattern)
用一个中介对象来封装一系列的对象交互,应用
组件之间的通信。
职责链模式(Chain of Responsibility Pattern)
用于解耦请求发送者和接收者之间的关系,例如处理表单验证、处理请求拦截等。
命令模式(Command Pattern)
将请求封装成一个对象,从而使得可以用不同的请求对客户进行参数化。
例如实现撤销/重做功能。
备忘录模式(Memento Pattern)
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,用于保存和恢复对象状态。
例如保存用户输入内容以便恢复。
状态模式(State Pattern)
允许对象在其内部状态改变时改变它的行为。
例如实现复杂的表单验证逻辑。
解释器模式(Interpreter Pattern)
给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。