JavaScript设计模式入坑
介绍
设计模式编写易于维护的代码。
设计模式的开创者是一位土木工程师。Σ( ° △ °|||)︴,写代码就是盖房子。
模式
模式一种可以复用的解决方案。解决软件设计中遇到的问题。
设计模式的结构
如何编写一个新的设计模式
一个设计模式将会产生如下的内容
模式名称
对模式名称的书写
上下文大纲
适用的上下文
问题陈述
对需要解决的问题进行陈述
解决方案
对问题的解决
设计
模式的设计
实现
如何实现该设计模式
插图
UML图表示
示例
最小模式的形式实现
辅助条件
需要哪些模式支撑该模式,即依赖
关系
像哪些模式,仿照哪些模式设计出的
已知的用法
是否广泛的使用。
在哪里使用。
如何使用
讨论
带来什么好处
编写设计模式
没有和使用该模式的交互和明确的解决方案即不是好的设计模式。
一旦熟悉了模式的相关信息即可以使用现有的格式编写模式。
例如 Christian Heilmann https://christianheilmann.com/ 创建的Revedling Module模式
模式的实用有多少?
需要哪些实践?
设计模式对用户来说为透明的。
需要有说服力
反模式
如果一个设计模式应用于错误的上下文中,为反模式,即一种错误的
例如下方的反模式
- 全局上下文中定义变量,没有使用闭包用来包裹变量
- 使用定时器来执行代码,会触发eval的问题。
- 修改Object类的原型
- 以内联的形式使用js
- 应该使用document.createElement()创建节点,而不是使用document.write
设计模式的类别
设计模式是基于面向对象的语言。但是核心在于解决实际遇到的问题。
创建型设计模式
处理对象的创建。用来创建对象。
构造器模式,工厂模式,抽象模式,原型模式,单例模式,生成器模式
上方使用过工厂模式
结构型设计模式
找出不同对象之间建立关系的简单方法。
装饰着模式,外观模式,享元模式,适配器模式,代理模式。
行为设计模式
系统中的对象的通信
迭代器模式,中介者模式,观察者模式,访问者模式。