tomoya06 / web-developer-guidance

Actually it's just a notebook for keeping down some working experience.
4 stars 0 forks source link

JavaScript - 設計模式 #16

Open tomoya06 opened 4 years ago

tomoya06 commented 4 years ago

前端设计模式大全

本文参考掘金小册 - JS设计模式核心原理与应用实践

创建型

简单工厂模式

将创建对象的过程单独封装,这样的操作就是工厂模式。

抽象工厂模式

抽象工厂模式的定义,是围绕一个超级工厂创建其他工厂。例如一个主类中有多个属性都可以单独作为一个类、用简单工厂来管理,那么这个主类可以考虑用抽象工厂来管理,属性类可以自由搭配。

单例模式

保证一个类仅有一个实例,并提供一个访问它的全局访问点,这样的模式就叫做单例模式。

原型模式

原型编程范式的核心思想就是利用实例来描述对象,用实例作为定义对象和继承的基础。在 JavaScript 中,原型编程范式的体现就是基于原型链的继承。

JS原型链参考JS基础

结构型

装饰器模式

装饰器模式,又名装饰者模式。它的定义是“在不改变原对象的基础上,通过对其进行包装拓展,使原有对象可以满足用户的更复杂需求”。

适配器模式

适配器模式通过把一个类的接口变换成客户端所期待的另一种接口,可以帮我们解决不兼容的问题。

代理模式

一个对象不能直接访问另一个对象,需要一个第三者(代理)牵线搭桥从而间接达到访问目的,这样的模式就是代理模式。

行为型

观察者模式

观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个目标对象,当这个目标对象的状态发生变化时,会通知所有观察者对象,使它们能够自动更新。

发布-订阅模式

与观察者模式相似。区别如下图,关键区别在于发布者和订阅者是否直接接触。

image

迭代器模式

迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。

策略模式

定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。主要便于切换不同的策略,远离if-else地狱的一种方法。

状态模式

允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。