?JavaScript設計模式實踐:18份筆記、例子和原始碼?

godbmw發表於2019-04-11

背景介紹

之前在閱讀《JavaScript設計模式和開發實踐》這本書的時候,收貨頗豐,學習了設計模式在很多場景下的應用。

但也是因為書上場景過多,所以當記不清某一種設計模式的時候,翻書溫習複雜案例的成本是相對較高的。有時候,只需要一段經典、簡潔的demo就可以迅速回顧起精髓,在快速業務開發中,這是個比較經濟的做法。

除此之外,當主要工作語言發生變化的時候(例如:js -> python),簡潔的demo更能幫助開發者快速回憶某種設計模式的精髓和實現思路,方便開發者根據語言特性再做實現。

因此,對於比較重要的18種設計模式,我都挑選了它的一種經典應用,並且儘量使用ES6的語法和程式設計習慣來進行實現。 前10個設計模式還提供了Python3的實現版本(後來比較忙,遂放棄)

文章地址

一共記錄了18個設計模式,部分文章發到了掘金,由於精力有限,後面幾篇文章就直接放在了Github倉庫 / 個人部落格

  1. 單例模式:godbmw.com/passages/20…
  2. 策略模式: godbmw.com/passages/20…
  3. 代理模式: godbmw.com/passages/20…
  4. 迭代器模式: godbmw.com/passages/20…
  5. 訂閱-釋出模式: godbmw.com/passages/20…
  6. 命令模式: godbmw.com/passages/20…
  7. 組合模式: godbmw.com/passages/20…
  8. 享元模式:godbmw.com/passages/20…
  9. 責任鏈模式: godbmw.com/passages/20…
  10. 裝飾者模式: godbmw.com/passages/20…
  11. 狀態模式: godbmw.com/passages/20…
  12. 介面卡模式: godbmw.com/passages/20…
  13. 橋接模式: godbmw.com/passages/20…
  14. 直譯器模式: godbmw.com/passages/20…
  15. 備忘錄模式: godbmw.com/passages/20…
  16. 模板模式: godbmw.com/passages/20…
  17. 工廠模式: godbmw.com/passages/20…
  18. 抽象工廠模式: godbmw.com/passages/20…

放在最後

其實整理這些的原因還有一個,就是為了準備今年春招的面試。然後過了騰訊的校招和阿里的前三面發現,竟然沒有專門問到設計模式相關知識!

但回首看,系統地學習、理智地使用設計模式(不是為了用而用),確實能提升程式碼的可讀性,實現業務解耦。而在寫這些文章的過程中,每種設計模式自己也是會找很多的實現(包括不限於python、java、c++)來參考,探索式學習還是蠻有趣的。

儘管如此,有2篇文章的瑕疵還是很多,希望您抱著交流的心態來閱讀,如有不當,歡迎指出、共同提升

相關文章