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

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

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

2020-08-14 09:34 作者:微軟MVP-Eleven  | 我要投稿



Intro#

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

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

使用場(chǎng)景#

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

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

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

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

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

Sample


More

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

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

策略類的定義比較簡(jiǎn)單,包含一個(gè)策略接口和一組實(shí)現(xiàn)這個(gè)接口的策略類。
策略的創(chuàng)建由工廠類來(lái)完成,封裝策略創(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ù)雜、代碼不多,這并沒(méi)有任何問(wèn)題,畢竟 if-else 分支判斷幾乎是所有編程語(yǔ)言都會(huì)提供的語(yǔ)法,存在即有理由。遵循 KISS 原則,怎么簡(jiǎn)單怎么來(lái),就是最好的設(shè)計(jì)。非得用策略模式,搞出 n 多類,反倒是一種過(guò)度設(shè)計(jì)。

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

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



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

分享到微博請(qǐng)遵守國(guó)家法律
秦安县| 扶绥县| 广德县| 兴海县| 牟定县| 西丰县| 迁安市| 黄浦区| 长武县| 景谷| 金昌市| 洮南市| 基隆市| 南川市| 濉溪县| 马公市| 灵宝市| 忻州市| 巧家县| 青冈县| 永寿县| 广河县| 平和县| 牡丹江市| 岳阳县| 扎赉特旗| 大英县| 马鞍山市| 天柱县| 盘山县| 东海县| 张家界市| 邯郸市| 即墨市| 丰顺县| 伊宁县| 阿尔山市| 时尚| 朝阳市| 手游| 江阴市|