那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

設(shè)計(jì)模式行為型:策略模式

冬至子 ? 來(lái)源:碼農(nóng)架構(gòu) ? 作者:小智 ? 2023-06-07 11:18 ? 次閱讀

在策略模式(Strategy Pattern)中,一個(gè)類的行為或其算法可以在運(yùn)行時(shí)更改。這種類型的設(shè)計(jì)模式屬于行為型模式。

在策略模式中,我們創(chuàng)建表示各種策略的對(duì)象和一個(gè)行為隨著策略對(duì)象改變而改變的 context 對(duì)象。策略對(duì)象改變 context 對(duì)象的執(zhí)行算法。

定義一系列的算法,把它們一個(gè)個(gè)封裝起來(lái), 并且使它們可相互替換。在有多種算法相似的情況下,使用 if...else 所帶來(lái)的復(fù)雜和難以維護(hù)。

結(jié)構(gòu)圖

圖片

角色與理解

  • 策略模式共分為三種角色:
  • Context(上下文環(huán)境):持有抽象策略類,調(diào)用策略方法。
  • Strategy(抽象策略類):聲明策略方法。
  • Concrete Strategy(具體策略類):實(shí)現(xiàn)策略方法。
  • Context持有State的引用,完成對(duì)ConcreteStrategy中策略方法的調(diào)用

核心代碼

  • 抽象策略類
public interface Strategy {
    void doSomething();
}
  • 真實(shí)策略類
public class ConcreteStrategyA implements Strategy {
    @Override
    public void doSomething() {
        System.out.println("AAA");
    }
}
public class ConcreteStrategyB implements Strategy {
    @Override
    public void doSomething() {
        System.out.println("BBB");
    }
}
  • 客戶端
public class Client {
    public static void main(String[] args) {
        Strategy strategy = new ConcreteStrategyA();
        strategy.doSomething();
        strategy = new ConcreteStrategyB();
        strategy.doSomething();
    }
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4630

    瀏覽量

    93356
  • State
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    7681
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于入侵行為模式的告警關(guān)聯(lián)

    本文提出了一種基于入侵行為模式的告警關(guān)聯(lián)方式。入侵行為模式是定義在時(shí)間基礎(chǔ)上的一組謂詞公式,其實(shí)質(zhì)是通過(guò)時(shí)間限制聯(lián)系在一起的入侵事件的集合。該方法在對(duì)大量告
    發(fā)表于 08-13 08:35 ?6次下載

    混合導(dǎo)通模式BoostPFC的控制策略研究

    混合導(dǎo)通模式BoostPFC的控制策略研究_王武
    發(fā)表于 01-04 16:32 ?8次下載

    基于訪存行為感知的存儲(chǔ)調(diào)度策略

    隨著通用圖形處理器在高性能計(jì)算領(lǐng)域的廣泛應(yīng)用,新的并行執(zhí)行模式被提出。在新模式下,當(dāng)前的存儲(chǔ)調(diào)度策略未能使存儲(chǔ)器的吞吐率達(dá)到最大。分析了圖形處理器上多程序并行執(zhí)行模式下應(yīng)用程序訪存
    發(fā)表于 11-20 14:23 ?13次下載
    基于訪存<b class='flag-5'>行為</b>感知的存儲(chǔ)調(diào)度<b class='flag-5'>策略</b>

    設(shè)計(jì)模式最佳實(shí)踐探索—策略模式

    根據(jù)不同的應(yīng)用場(chǎng)景與意圖,設(shè)計(jì)模式主要分為創(chuàng)建型模式、結(jié)構(gòu)型模式行為模式三類。本文主要探索行為
    的頭像 發(fā)表于 10-31 14:24 ?1000次閱讀

    設(shè)計(jì)模式:備忘錄設(shè)計(jì)模式

    備忘錄設(shè)計(jì)模式(Memento Design Pattern)是一種行為設(shè)計(jì)模式,它的主要目的是在不破壞對(duì)象封裝性的前提下,捕捉和保存一個(gè)對(duì)象的內(nèi)部狀態(tài)
    的頭像 發(fā)表于 06-06 11:19 ?839次閱讀

    設(shè)計(jì)模式行為:中介模式

    提供一個(gè)中介者完成對(duì)一系列操作的封裝,降低對(duì)象間的系統(tǒng)耦合度。中介者模式又稱為調(diào)停者模式。
    的頭像 發(fā)表于 06-06 17:42 ?738次閱讀
    設(shè)計(jì)<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:中介<b class='flag-5'>模式</b>

    設(shè)計(jì)模式行為:備忘錄模式

    備忘錄模式(Memento Pattern)保存一個(gè)對(duì)象的某個(gè)狀態(tài),以便在適當(dāng)?shù)臅r(shí)候恢復(fù)對(duì)象。備忘錄模式屬于行為模式。
    的頭像 發(fā)表于 06-07 11:16 ?899次閱讀
    設(shè)計(jì)<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:備忘錄<b class='flag-5'>模式</b>

    設(shè)計(jì)模式行為:狀態(tài)模式

    在狀態(tài)模式(State Pattern)中,類的行為是基于它的狀態(tài)改變的。這種類型的設(shè)計(jì)模式屬于行為模式。
    的頭像 發(fā)表于 06-07 11:20 ?652次閱讀
    設(shè)計(jì)<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:狀態(tài)<b class='flag-5'>模式</b>

    設(shè)計(jì)模式行為:訪問(wèn)者模式

    在訪問(wèn)者模式(Visitor Pattern)中,我們使用了一個(gè)訪問(wèn)者類,它改變了元素類的執(zhí)行算法。
    的頭像 發(fā)表于 06-07 15:11 ?790次閱讀
    設(shè)計(jì)<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:訪問(wèn)者<b class='flag-5'>模式</b>

    設(shè)計(jì)模式行為:模板方法模式

    在模板模式中,一個(gè)抽象類公開(kāi)定義了執(zhí)行它的方法的方式/模板。
    的頭像 發(fā)表于 06-07 15:13 ?629次閱讀
    設(shè)計(jì)<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:模板方法<b class='flag-5'>模式</b>

    設(shè)計(jì)模式行為:觀察者模式

    定義對(duì)象之間的一種一對(duì)多依賴關(guān)系,使得每一個(gè)對(duì)象發(fā)生狀態(tài)的變化時(shí),其相關(guān)依賴對(duì)象皆得到通知并被自動(dòng)更新,又稱為發(fā)布-訂閱模式、模型-視圖模式、源-監(jiān)聽(tīng)器模式或從屬者模式
    的頭像 發(fā)表于 06-07 16:56 ?713次閱讀
    設(shè)計(jì)<b class='flag-5'>模式</b><b class='flag-5'>行為</b><b class='flag-5'>型</b>:觀察者<b class='flag-5'>模式</b>

    行為設(shè)計(jì)模式在UVM中的應(yīng)用

    接下來(lái)介紹行為設(shè)計(jì)模式在UVM中的應(yīng)用。
    的頭像 發(fā)表于 08-09 14:01 ?754次閱讀
    <b class='flag-5'>行為</b><b class='flag-5'>型</b>設(shè)計(jì)<b class='flag-5'>模式</b>在UVM中的應(yīng)用

    迭代模式在UVM中的應(yīng)用有哪些

    行為設(shè)計(jì)模式數(shù)量較多,上一篇介紹了模板模式策略模式,下面對(duì)迭代
    的頭像 發(fā)表于 08-14 17:15 ?655次閱讀
    迭代<b class='flag-5'>模式</b>在UVM中的應(yīng)用有哪些

    什么是策略模式

    不同的場(chǎng)景,使用不同的策略進(jìn)行處理。 優(yōu)點(diǎn) 算法可以自由切換。 避免使用多重條件判斷。 擴(kuò)展性良好。 缺點(diǎn) 策略類會(huì)增多。 所有策略類都需要對(duì)外暴露。 使用場(chǎng)景 如果在一個(gè)系統(tǒng)里面有許多類,它們之間的區(qū)別僅在于它們的
    的頭像 發(fā)表于 10-08 14:15 ?2789次閱讀
    什么是<b class='flag-5'>策略</b><b class='flag-5'>模式</b>

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

    ,不會(huì)影響到使用算法的客戶。策略模式屬性行為模式。 二、實(shí)際應(yīng)用 業(yè)務(wù)場(chǎng)景:業(yè)務(wù)需要監(jiān)聽(tīng)多種消息,將接收到的消息更新到同一個(gè)ES中,不同的消息類型使用不同的
    的頭像 發(fā)表于 01-08 13:47 ?102次閱讀
    設(shè)計(jì)<b class='flag-5'>模式</b>-<b class='flag-5'>策略</b><b class='flag-5'>模式</b>
    百家乐官网博彩通网| 亚洲赌博网站| 澳门百家乐会出千吗| 百家乐官网投注怎么样| 大发888怎么下载不了| 澳门百家乐牌例| 百家乐官网游戏介绍与分析| 万年县| 大发888老虎机平台| 豪华百家乐桌子厂家| 百家乐官网玩牌| 百家乐官网视频美女| 大发888 dafa888游戏| 百家乐好赌吗| 泰山百家乐官网的玩法技巧和规则| 豪杰百家乐官网现金网| 威尼斯人娱乐的微博| 百家乐白茫茫| 百家乐官网破解秘| 菲律百家乐官网太阳城| 大富豪百家乐| 大发888葡京下载地址| 博彩百家乐的玩法技巧和规则| 百家乐官网园好又多| 百家乐官网开户投注| 金昌市| 星空棋牌舟山| 威尼斯人娱乐城线上博彩| 百家乐自动算牌软件| 杨公24山向水法吉凶断| 利来国际娱乐| 大发888娱乐城3403| E世博百家乐的玩法技巧和规则 | 百家乐买隔一数| 百家乐官网网上真钱娱乐| 百家乐官网波音平台有假吗 | 现金百家乐官网代理| 百家乐官网赢钱lv| 大发真钱娱乐城| e利博娱乐城开户| 大发888娱乐平台 游戏|