最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

設(shè)計(jì)模式之策略模式

2020-08-14 09:32 作者:朝夕教育  | 我要投稿



Intro#

策略模式(Strategy):它定義了算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓算法的變化不會(huì)影響到使用算法的?Context

策略模式是一種定義一系列算法的方法,從概念上來看,所有這些算法完全的都是相同的工作,只是實(shí)現(xiàn)不同,它可以以相同的方式調(diào)用所有的算法,減少了各種算法類與使用類之間的耦合。

使用場(chǎng)景#

策略模式就是用來封裝算法的,但在實(shí)踐中也可以用它來封裝幾乎任何類型的規(guī)則,只要在分析過程中聽到需要在不同時(shí)間應(yīng)用不同的業(yè)務(wù)規(guī)則,就可以考慮使用策略模式處理這種變化的可能性。

優(yōu)點(diǎn)#

  • 減少了具體的算法和使用算法類之間的耦合

  • 策略模式的 Strategy 類層為?Context?定義了一系列的可供重用的算法或行為,繼承有助于析取這些算法中的公共功能

  • 簡(jiǎn)化了單元測(cè)試,因?yàn)槊總€(gè)算法都有自己的類,可以通過自己的接口單獨(dú)測(cè)試

Sample

More

工廠模式是解耦對(duì)象的創(chuàng)建和使用,觀察者模式是解耦觀察者和被觀察者。策略模式跟兩者類似,也能起到解耦的作用,不過,它解耦的是策略的定義、創(chuàng)建、使用這三部分。

策略模式用來解耦策略的定義、創(chuàng)建、使用。實(shí)際上,一個(gè)完整的策略模式就是由這三個(gè)部分組成的。

策略類的定義比較簡(jiǎn)單,包含一個(gè)策略接口和一組實(shí)現(xiàn)這個(gè)接口的策略類。
策略的創(chuàng)建由工廠類來完成,封裝策略創(chuàng)建的細(xì)節(jié)。
策略模式包含一組策略可選,客戶端代碼如何選擇使用哪個(gè)策略,有兩種確定方法:編譯時(shí)靜態(tài)確定和運(yùn)行時(shí)動(dòng)態(tài)確定。其中,“運(yùn)行時(shí)動(dòng)態(tài)確定”才是策略模式最典型的應(yīng)用場(chǎng)景

如果 if-else 分支判斷不復(fù)雜、代碼不多,這并沒有任何問題,畢竟 if-else 分支判斷幾乎是所有編程語言都會(huì)提供的語法,存在即有理由。遵循 KISS 原則,怎么簡(jiǎn)單怎么來,就是最好的設(shè)計(jì)。非得用策略模式,搞出 n 多類,反倒是一種過度設(shè)計(jì)。

策略的創(chuàng)建也可以結(jié)合依賴注入來創(chuàng)建或獲取,靈活使用。

出處:https://www.cnblogs.com/weihanli/p/strategy-pattern.html



設(shè)計(jì)模式之策略模式的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
广河县| 呼图壁县| 桑植县| 东港市| 泽州县| 澄城县| 灯塔市| 墨竹工卡县| 阿拉善右旗| 平湖市| 上林县| 建宁县| 巴彦淖尔市| 额济纳旗| 松阳县| 驻马店市| 布尔津县| 旌德县| 图木舒克市| 麻阳| 米易县| 富阳市| 衡南县| 友谊县| 手机| 睢宁县| 奈曼旗| 灵武市| 沈阳市| 神木县| 岚皋县| 娱乐| 尼玛县| 旺苍县| 西畴县| 肇东市| 于田县| 仙游县| 象山县| 定陶县| 加查县|