设计模式的初步理解

165 阅读2分钟

什么是设计模式

模式是一种可复用的解决方案,可用于解决软件设计中遇到的常见问题
为了编写易于维护的代码,找到代码中重复出现的主题并优化他们,这就是设计模式

在我看来的,设计模式是一种解决代码维护性和简易优化代码的数据结构

设计模式的三法则

  1. 适合性
  2. 实用性
  3. 适用性

反模式的两个概念:

  • 描述一种针对某个特定问题的不良解决方案,该方案会导致糟糕的情况发生
  • 描述如何摆脱前述的糟糕情况以及如何创造好的解决方案

js中反模式的示例

  • 全局变量污染
  • 向定时器传递字符串而不是回调函数,触发eval()的内部使用
  • 修改Object原型
  • 以内嵌样式使用js
  • 在使用document.creatElment等原生DOM方法更适合的情况下,使用document.write.

三种设计模式的类别

1.创建型设计模式
专注于处理处理对象创建机制,以适合给定情况的方式来创建对象

属于该类型的模式包括:
Constructor(构造器) Factory(工厂) Abstract(抽象) Prototype(原型) Singleton(单例) Builder(生成器)

2.结构型设计模式
与对象组合有关,通常可以用于找出在不同对象之间建立关系的简单方法

属于该类型的模式包括:
Decorator(装饰者) Flyweight(享元) Facade(外观) Adapter(适配器) Proxy(代理)

3.行为设计模式 专注于改善和简化系统中不同对象之间的通信

属于该类型的模式包括:
Iterator(迭代器) Mediator(中介者) Observer(观察者) Visitor(访问者)

因为js没有类的概念,一般我们创建的新类是以function函数实现的类,约定函数名首字母大写来区分类的函数,再通过关键字new来创建新对象(值得注意的是new之后,function里的代码或者es6中的constructor会被立即执行)

以上是个人对象《javascript设计模式》前八章的总结和看法