摘要:設計模式與開發實踐讀書筆記。策略模式可以有效避免多重條件選擇語句。當然,策略模式也有一些缺點增加了許多策略類或者策略對象。要使用策略模式,必須了解所有的,違反了最少知識原則。至此,回家咯附設計模式之發布訂閱模式觀察者模式
《JavaScript設計模式與開發實踐》讀書筆記。這本書挺好的,推薦。
俗話說,條條大路通羅馬。在現實生活中,我們可以采用很多方法實現同一個目標。比如我們先定個小目標,先掙它一個億。我們可以根據具體的實際情況來完成這個目標。
如果你是個富二代,可以接手家族生意,分分鐘掙它一個億。
如果你是個官二代,可以......(你懂的)。
如果你是個屌絲,可以......別做夢了,好好擼碼。
策略模式的定義
定義一系列的算法,把它們一個個封裝起來,并且使它們可以相互替換。
舉個例子:表單校驗
在一個Web項目中,注冊、登錄等功能的實現都離不開表單提交。表單校驗也是前端常常需要做的事。假設我們正在編寫一個注冊的頁面,在點擊提交按鈕之前,有如下幾條校驗邏輯:
用戶名不可為空,不允許以空白字符命名,用戶名長度不能小于2位。
密碼長度不能小于6位。
正確的手機號碼格式。
也許,一開始我們會這么寫:
策略模式-校驗表單
這是一種很常見的編碼方式,但它有很明顯的缺點:
registerForm.onsubmit 函數比較龐大,包含了很多if語句,這些語句要覆蓋所有的校驗規則。
若校驗規則有變,不得不深入到registerForm.onsubmit 函數的內部實現,違反開放-封閉原則。
算法的復用性差。
下面,讓我們來用策略模式重構表單校驗
策略模式:表單校驗
策略模式-校驗表單
策略模式優缺點
策略模式是一種常用且有效的設計模式。
策略模式可以有效避免多重條件選擇語句。
策略模式提供了對開放-封裝原則的完美支持,將方法封裝在獨立的strategy中,使得它們易于切換,易于理解,易于擴展。
復用性高。
當然,策略模式也有一些缺點
增加了許多策略類或者策略對象。
要使用策略模式,必須了解所有的strategy,違反了最少知識原則。
至此,回家咯~
附:JavaScript設計模式之發布-訂閱模式(觀察者模式)-Part1
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/90999.html
摘要:本系列為設計模式與開發實踐作者曾探學習總結,如想深入了解,請支持作者原版策略模式策略模式的定義定義一系列的算法,把它們一個個封裝起來,并且使它們可以互相替換。 本系列為《JavaScript設計模式與開發實踐》(作者:曾探)學習總結,如想深入了解,請支持作者原版 策略模式 策略模式的定義:定義一系列的算法,把它們一個個封裝起來,并且使它們可以互相替換。 舉個形象的例子,使用策略模式計算...
摘要:策略模式策略模式指的是定義一系列的算法,把它們一個個封裝起來,將不變的部分和變化的部分隔開,實際就是將算法的使用和實現分離出來這樣就能避免很多的條件判斷并且增強了代碼的復用性其中包含一個策略類和一個環境類計算獎金的例子策略類環境類設置原始工 策略模式 策略模式指的是 定義一系列的算法,把它們一個個封裝起來,將不變的部分和變化的部分隔開,實際就是將算法的使用和實現分離出來, 這樣就能避...
摘要:介一回,聊策略模式,策略模式定義了一系列的算法,并將每一個算法封裝起來,而且使它們還可以相互替換。策略模式讓算法獨立于使用它的客戶而獨立變化。下一回,聊一聊的享元模式。 本回內容介紹 上一回,聊了聊鏈式編程,模擬了jQuery和underscore.js,并寫了一個遍歷多維數組的函數。介一回,聊策略模式(Strategy),策略模式定義了一系列的算法,并將每一個算法封裝起來,而且使它們...
摘要:做前端開發已經好幾年了,對設計模式一直沒有深入學習總結過。今天第一天,首先來講策略模式。什么是策略模式四兄弟的經典設計模式中,對策略模式的定義如下定義一系列的算法,把它們一個個封裝起來,并且使它們可互相替換。 做前端開發已經好幾年了,對設計模式一直沒有深入學習總結過。隨著架構相關的工作越來越多,越來越能感覺到設計模式成為了我前進道路上的一個阻礙。所以從今天開始深入學習和總結經典的設計模...
閱讀 1496·2021-10-11 10:59
閱讀 1857·2021-09-09 11:36
閱讀 1370·2019-08-30 15:55
閱讀 1322·2019-08-29 11:20
閱讀 3057·2019-08-26 13:39
閱讀 1458·2019-08-26 13:37
閱讀 1951·2019-08-26 12:11
閱讀 1313·2019-08-23 14:28