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