成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript設(shè)計模式之策略模式

go4it / 1312人閱讀

摘要:設(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

相關(guān)文章

  • JavaScript設(shè)計模式與開發(fā)實踐系列策略模式

    摘要:本系列為設(shè)計模式與開發(fā)實踐作者曾探學(xué)習(xí)總結(jié),如想深入了解,請支持作者原版策略模式策略模式的定義定義一系列的算法,把它們一個個封裝起來,并且使它們可以互相替換。 本系列為《JavaScript設(shè)計模式與開發(fā)實踐》(作者:曾探)學(xué)習(xí)總結(jié),如想深入了解,請支持作者原版 策略模式 策略模式的定義:定義一系列的算法,把它們一個個封裝起來,并且使它們可以互相替換。 舉個形象的例子,使用策略模式計算...

    spademan 評論0 收藏0
  • javascript設(shè)計模式學(xué)習(xí)筆記策略模式

    摘要:策略模式策略模式指的是定義一系列的算法,把它們一個個封裝起來,將不變的部分和變化的部分隔開,實際就是將算法的使用和實現(xiàn)分離出來這樣就能避免很多的條件判斷并且增強了代碼的復(fù)用性其中包含一個策略類和一個環(huán)境類計算獎金的例子策略類環(huán)境類設(shè)置原始工 策略模式 策略模式指的是 定義一系列的算法,把它們一個個封裝起來,將不變的部分和變化的部分隔開,實際就是將算法的使用和實現(xiàn)分離出來, 這樣就能避...

    wh469012917 評論0 收藏0
  • 聽飛狐聊JavaScript設(shè)計模式系列15

    摘要:介一回,聊策略模式,策略模式定義了一系列的算法,并將每一個算法封裝起來,而且使它們還可以相互替換。策略模式讓算法獨立于使用它的客戶而獨立變化。下一回,聊一聊的享元模式。 本回內(nèi)容介紹 上一回,聊了聊鏈式編程,模擬了jQuery和underscore.js,并寫了一個遍歷多維數(shù)組的函數(shù)。介一回,聊策略模式(Strategy),策略模式定義了一系列的算法,并將每一個算法封裝起來,而且使它們...

    guyan0319 評論0 收藏0
  • 前端也要學(xué)系列:設(shè)計模式策略模式

    摘要:做前端開發(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è)計模...

    Anchorer 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<