JS 中的設計模式瞭解一下?

更多文章參見: github.com/elevenbeans…javascript

前言

本系列能夠看做是我我的對於 Addy Osmani 的著做《Learning JavaScript Design Patterns》中內容的提煉,相似閱讀筆記,目的是爲了簡單快速、又不失全面地瞭解設計模式的相關概念、特色、分類及其在 Javascript 中的實際用法。java

分爲五篇,基本上涵蓋了絕大部分設計模式類型。若是想深刻了解,推薦原著。git

  1. 概述(本篇)
  2. 建立型
  3. 結構型
  4. 行爲型設計模式
  5. MV*

基本概念

設計模式是一種可用於解決軟件設計中問題的可複用的解決方案。github

主要特色

  • 是在沒有顯而易見的方案(語言自己的 feature 或其運行環境提供的 API)下的一種間接解決問題的方案
  • 能解決實際問題,可複用
  • 是通過多方驗證的,描述與實際做用一致的
  • 能夠抽象爲一種關係的描述,富有表達力

一些經典的設計模式類別

1. 建立型設計模式

  • Constructor(構造器) 模式
  • Factory(工廠) 模式
  • Abstract(抽象) 模式
  • Prototype(原型) 模式
  • Singleton(單例) 模式
  • Builder(生成器) 模式

2. 結構型設計模式

  • Decorator(裝飾者) 模式
  • Facade(外觀) 模式
  • Flyweight(享元) 模式
  • Adapter(適配器) 模式
  • Proxy(代理) 模式

3. 行爲設計模式

  • Iterator(迭代器) 模式
  • Mediator(中介着) 模式
  • Observer(觀察者) 模式
  • Visitor(訪問者) 模式

JavaScript 中一些反模式的例子

  • 大量的全局變量,對於全局命名空間的污染
  • 對於 setTimeout()``setInterval() 傳遞字符串,引起eval()的使用
  • 修改原生 Object 對象的原型
  • Inline JavaScript
  • 濫用 document.write

持續關注請 Star and Watch This github repo, 謝謝 :)設計模式

相關文章
相關標籤/搜索