Open tomoya06 opened 4 years ago
本文参考掘金小册 - JS设计模式核心原理与应用实践
将创建对象的过程单独封装,这样的操作就是工厂模式。
抽象工厂模式的定义,是围绕一个超级工厂创建其他工厂。例如一个主类中有多个属性都可以单独作为一个类、用简单工厂来管理,那么这个主类可以考虑用抽象工厂来管理,属性类可以自由搭配。
保证一个类仅有一个实例,并提供一个访问它的全局访问点,这样的模式就叫做单例模式。
原型编程范式的核心思想就是利用实例来描述对象,用实例作为定义对象和继承的基础。在 JavaScript 中,原型编程范式的体现就是基于原型链的继承。
JS原型链参考JS基础
装饰器模式,又名装饰者模式。它的定义是“在不改变原对象的基础上,通过对其进行包装拓展,使原有对象可以满足用户的更复杂需求”。
适配器模式通过把一个类的接口变换成客户端所期待的另一种接口,可以帮我们解决不兼容的问题。
一个对象不能直接访问另一个对象,需要一个第三者(代理)牵线搭桥从而间接达到访问目的,这样的模式就是代理模式。
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个目标对象,当这个目标对象的状态发生变化时,会通知所有观察者对象,使它们能够自动更新。
与观察者模式相似。区别如下图,关键区别在于发布者和订阅者是否直接接触。
迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。主要便于切换不同的策略,远离if-else地狱的一种方法。
允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。
前端设计模式大全
创建型
简单工厂模式
将创建对象的过程单独封装,这样的操作就是工厂模式。
抽象工厂模式
抽象工厂模式的定义,是围绕一个超级工厂创建其他工厂。例如一个主类中有多个属性都可以单独作为一个类、用简单工厂来管理,那么这个主类可以考虑用抽象工厂来管理,属性类可以自由搭配。
单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点,这样的模式就叫做单例模式。
原型模式
原型编程范式的核心思想就是利用实例来描述对象,用实例作为定义对象和继承的基础。在 JavaScript 中,原型编程范式的体现就是基于原型链的继承。
结构型
装饰器模式
装饰器模式,又名装饰者模式。它的定义是“在不改变原对象的基础上,通过对其进行包装拓展,使原有对象可以满足用户的更复杂需求”。
适配器模式
适配器模式通过把一个类的接口变换成客户端所期待的另一种接口,可以帮我们解决不兼容的问题。
代理模式
一个对象不能直接访问另一个对象,需要一个第三者(代理)牵线搭桥从而间接达到访问目的,这样的模式就是代理模式。
行为型
观察者模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个目标对象,当这个目标对象的状态发生变化时,会通知所有观察者对象,使它们能够自动更新。
发布-订阅模式
与观察者模式相似。区别如下图,关键区别在于发布者和订阅者是否直接接触。
迭代器模式
迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。
策略模式
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。主要便于切换不同的策略,远离if-else地狱的一种方法。
状态模式
允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。