亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦>知識(shí)大全>知識(shí)百科>百科知識(shí)>

      什么是策略模式具體的介紹

      時(shí)間: 謝君787 分享

        策略模式讓算法獨(dú)立于使用它的客戶(hù)而獨(dú)立變化。那么你對(duì)策略模式了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是策略模式的內(nèi)容,希望大家喜歡!

        什么是策略模式

        策略模式定義了一系列的算法,并將每一個(gè)算法封裝起來(lái),而且使它們還可以相互替換。策略模式讓算法獨(dú)立于使用它的客戶(hù)而獨(dú)立變化。

        策略模式的概念

        (原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.)

        Context(應(yīng)用場(chǎng)景):

        1、需要使用ConcreteStrategy提供的算法。

        2、 內(nèi)部維護(hù)一個(gè)Strategy的實(shí)例。

        3、 負(fù)責(zé)動(dòng)態(tài)設(shè)置運(yùn)行時(shí)Strategy具體的實(shí)現(xiàn)算法。

        4、負(fù)責(zé)跟Strategy之間的交互和數(shù)據(jù)傳遞。

        Strategy(抽象策略類(lèi)):

        1、 定義了一個(gè)公共接口,各種不同的算法以不同的方式實(shí)現(xiàn)這個(gè)接口,Context使用這個(gè)接口調(diào)用不同的算法,一般使用接口或抽象類(lèi)實(shí)現(xiàn)。

        ConcreteStrategy(具體策略類(lèi)):

        2、 實(shí)現(xiàn)了Strategy定義的接口,提供具體的算法實(shí)現(xiàn)。

        策略模式應(yīng)用場(chǎng)景

        應(yīng)用場(chǎng)景:

        1、 多個(gè)類(lèi)只區(qū)別在表現(xiàn)行為不同,可以使用Strategy模式,在運(yùn)行時(shí)動(dòng)態(tài)選擇具體要執(zhí)行的行為。

        2、 需要在不同情況下使用不同的策略(算法),或者策略還可能在未來(lái)用其它方式來(lái)實(shí)現(xiàn)。

        3、 對(duì)客戶(hù)隱藏具體策略(算法)的實(shí)現(xiàn)細(xì)節(jié),彼此完全獨(dú)立。

        策略模式優(yōu)缺點(diǎn)

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

        1、 策略模式提供了管理相關(guān)的算法族的辦法。策略類(lèi)的等級(jí)結(jié)構(gòu)定義了一個(gè)算法或行為族。恰當(dāng)使用繼承可以把公共的代碼轉(zhuǎn)移到父類(lèi)里面,從而避免重復(fù)的代碼。

        2、 策略模式提供了可以替換繼承關(guān)系的辦法。繼承可以處理多種算法或行為。如果不是用策略模式,那么使用算法或行為的環(huán)境類(lèi)就可能會(huì)有一些子類(lèi),每一個(gè)子類(lèi)提供一個(gè)不同的算法或行為。但是,這樣一來(lái)算法或行為的使用者就和算法或行為本身混在一起。決定使用哪一種算法或采取哪一種行為的邏輯就和算法或行為的邏輯混合在一起,從而不可能再獨(dú)立演化。繼承使得動(dòng)態(tài)改變算法或行為變得不可能。

        3、 使用策略模式可以避免使用多重條件轉(zhuǎn)移語(yǔ)句。多重轉(zhuǎn)移語(yǔ)句不易維護(hù),它把采取哪一種算法或采取哪一種行為的邏輯與算法或行為的邏輯混合在一起,統(tǒng)統(tǒng)列在一個(gè)多重轉(zhuǎn)移語(yǔ)句里面,比使用繼承的辦法還要原始和落后。

        缺點(diǎn):

        1、客戶(hù)端必須知道所有的策略類(lèi),并自行決定使用哪一個(gè)策略類(lèi)。這就意味著客戶(hù)端必須理解這些算法的區(qū)別,以便適時(shí)選擇恰當(dāng)?shù)乃惴?lèi)。換言之,策略模式只適用于客戶(hù)端知道所有的算法或行為的情況。

        2、 策略模式造成很多的策略類(lèi),每個(gè)具體策略類(lèi)都會(huì)產(chǎn)生一個(gè)新類(lèi)。有時(shí)候可以通過(guò)把依賴(lài)于環(huán)境的狀態(tài)保存到客戶(hù)端里面,而將策略類(lèi)設(shè)計(jì)成可共享的,這樣策略類(lèi)實(shí)例可以被不同客戶(hù)端使用。換言之,可以使用享元模式來(lái)減少對(duì)象的數(shù)量。
      看過(guò)“策略模式是什么“的人還看了:

      1.危機(jī)處理有什么策略模式

      2.策略性商業(yè)模式是什么

      3.企業(yè)戰(zhàn)略管理系統(tǒng)戰(zhàn)略

      4.對(duì)于C2C模式下電子商務(wù)稅收管理對(duì)策的探究論文

      5.循環(huán)經(jīng)濟(jì)策略論文

      6.高考化學(xué)復(fù)習(xí)備考策略

      什么是策略模式具體的介紹

      策略模式讓算法獨(dú)立于使用它的客戶(hù)而獨(dú)立變化。那么你對(duì)策略模式了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是策略模式的內(nèi)容,希望大家喜歡! 什么是策略模式 策略模式定義了一系列的算法,并將每一個(gè)算法封裝起來(lái),而且使它們還可以相
      推薦度:
      點(diǎn)擊下載文檔文檔為doc格式

      精選文章

      • 黨參和太子參有什么區(qū)別
        黨參和太子參有什么區(qū)別

        參類(lèi)是藥用價(jià)值很高的中藥,各種參傻傻分不清楚,容易誤用。那么黨參和太子參的區(qū)別有哪些呢?以下是小編為大家整理推薦關(guān)于黨參和太子參的區(qū)別及

      • 什么是策劃案具體的介紹
        什么是策劃案具體的介紹

        策劃案一般分為商業(yè)策劃案、創(chuàng)業(yè)策劃案、廣告策劃案,活動(dòng)策劃案,營(yíng)銷(xiāo)策劃案,網(wǎng)站策劃案,項(xiàng)目策劃案,公關(guān)策劃案、婚禮策劃案等。那么你對(duì)策劃

      • 什么是測(cè)試效度的概念意思
        什么是測(cè)試效度的概念意思

        測(cè)試效度是一套測(cè)試是否達(dá)到了它預(yù)定的目的以及是否測(cè)量了它要測(cè)量的內(nèi)容。那么你對(duì)測(cè)試效度了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是測(cè)試效度

      • 黨參和沙參的區(qū)別
        黨參和沙參的區(qū)別

        黨參和沙參都是常見(jiàn)的中藥材,平常煲湯或者泡茶時(shí)都會(huì)用到,但很多人不了解黨參和沙參的區(qū)別,分不清兩者的功效作用。那么,黨參和沙參的區(qū)別是什

      1356038