国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【設(shè)計模式】 策略模式

這篇具有很好參考價值的文章主要介紹了【設(shè)計模式】 策略模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

策略模式(Strategy Pattern)是一種行為型設(shè)計模式,它定義了一系列算法,將每個算法封裝起來,使它們可以相互替換,讓客戶端代碼和算法的具體實現(xiàn)解耦。這樣,客戶端可以根據(jù)不同的需求選擇不同的算法,而無需修改原有的代碼。

C 實現(xiàn)策略模式

#include <stdio.h>
#include <stdlib.h>

// 定義策略接口
typedef struct {
    void (*execute)(void);
} Strategy;

// 具體策略1
void strategy1_execute(void) {
    printf("Executing Strategy 1\n");
}

// 具體策略2
void strategy2_execute(void) {
    printf("Executing Strategy 2\n");
}

// 客戶端代碼,使用策略接口
void client_code(Strategy* strategy) {
    strategy->execute();
}

int main() {
    // 創(chuàng)建策略對象
    Strategy* strategy1 = (Strategy*)malloc(sizeof(Strategy));
    strategy1->execute = strategy1_execute;

    Strategy* strategy2 = (Strategy*)malloc(sizeof(Strategy));
    strategy2->execute = strategy2_execute;

    // 使用不同的策略
    client_code(strategy1);
    client_code(strategy2);

    // 釋放內(nèi)存
    free(strategy1);
    free(strategy2);

    return 0;
}

C++ 實現(xiàn)策略模式

#include <iostream>

// 定義策略接口
class Strategy {
public:
    virtual void execute() = 0;
    virtual ~Strategy() {}
};

// 具體策略1
class Strategy1 : public Strategy {
public:
    void execute() override {
        std::cout << "Executing Strategy 1" << std::endl;
    }
};

// 具體策略2
class Strategy2 : public Strategy {
public:
    void execute() override {
        std::cout << "Executing Strategy 2" << std::endl;
    }
};

// 客戶端代碼,使用策略接口
void client_code(Strategy* strategy) {
    strategy->execute();
}

int main() {
    // 使用不同的策略
    Strategy1 strategy1;
    Strategy2 strategy2;

    client_code(&strategy1);
    client_code(&strategy2);

    return 0;
}

策略模式的優(yōu)缺點

優(yōu)點:

靈活性增強:策略模式使得算法獨立于客戶端使用而變化??梢栽谶\行時動態(tài)選擇算法,靈活應對不同的需求和場景。
代碼重用:各個策略可以被多個客戶端共享,避免了代碼重復。
擴展性良好:當需要添加新的算法時,只需增加新的策略類,而不需要修改已有的代碼。
易于測試:由于策略類封裝了具體的算法,因此易于進行單元測試。

缺點:

增加類數(shù)量:每個具體策略都需要一個對應的類,如果策略較多,可能會增加類的數(shù)量,增加代碼維護的復雜性。
客戶端必須了解策略:客戶端代碼必須了解所有的策略,以便進行選擇,如果策略較多,可能會增加客戶端代碼的復雜性。
總體來說,策略模式適用于需要在運行時動態(tài)選擇算法,并且希望算法和客戶端代碼解耦的情況。對于簡單的情況,可能沒有必要使用策略模式,但在復雜的場景下,它可以帶來更好的可維護性和可擴展性。文章來源地址http://www.zghlxwxcb.cn/news/detail-619902.html

到了這里,關(guān)于【設(shè)計模式】 策略模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 設(shè)計模式—策略模式

    設(shè)計模式—策略模式

    目錄 一、定義 二、特點 三、優(yōu)點 四、缺點 五、實例 六.涉及到的知識點 1、一個類里面有哪些東西? 2、類和實例 什么是類? 什么是實例? 什么是實例化? 3、字段和屬性 什么是字段? 屬性是什么? 屬性怎么用呢? 屬性有什么作用? 靜態(tài)屬性是什么? 屬性和字段的公有

    2024年02月10日
    瀏覽(23)
  • 【設(shè)計模式】4、策略模式

    【設(shè)計模式】4、策略模式

    策略模式是一種行為設(shè)計模式,它能定義一系列算法,把每種算法分別放入獨立的類中,以是算法的對象能相互替換。 一天, 你打算為游客們創(chuàng)建一款導游程序。 該程序的核心功能是提供美觀的地圖, 以幫助用戶在任何城市中快速定位。 用戶期待的程序新功能是自動路線

    2024年02月20日
    瀏覽(23)
  • 設(shè)計模式-策略模式

    策略模式是一種行為型設(shè)計模式,它允許在運行時動態(tài)改變對象的行為。在策略模式中,算法被封裝在獨立的策略類中,使得它們可以互換使用。下面是一個簡單的例子: 假設(shè)我們有一個計算稅收的系統(tǒng),現(xiàn)在需要計算不同類型的商品的稅收,例如書籍、食品和服裝。每種商

    2024年02月15日
    瀏覽(25)
  • 設(shè)計模式:策略模式

    策略模式(Strategy Pattern)是一種行為型設(shè)計模式,它允許在運行時根據(jù)不同的情況選擇不同的算法或行為。策略模式通過將算法封裝成獨立的策略類,使得它們可以互相替換,而不影響客戶端的使用。 在策略模式中,有三個核心組件: 策略接口(Strategy Interface):定義了策

    2024年02月07日
    瀏覽(23)
  • 【設(shè)計模式】 策略模式

    策略模式 (Strategy Pattern)是一種行為型設(shè)計模式,它定義了一系列算法,將每個算法封裝起來,使它們可以相互替換,讓客戶端代碼和算法的具體實現(xiàn)解耦。這樣,客戶端可以根據(jù)不同的需求選擇不同的算法,而無需修改原有的代碼。 靈活性增強 :策略模式使得算法獨立于

    2024年02月14日
    瀏覽(37)
  • 設(shè)計模式--策略模式

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

    目錄 一.場景 1.1場景 2.2 何時使用 ?2.3個人理解 二. 業(yè)務場景練習 ?2.1業(yè)務: 2.2具體實現(xiàn) 2.3思路? ?三.總結(jié) 3.1策略模式的特點: ?3.2策略模式優(yōu)點 3.3策略模式缺點 1.1場景 許多相關(guān)的類僅僅是行為有異,也就是說業(yè)務代碼需要根據(jù)場景不同,切換不同的實現(xiàn)邏輯 一個類定義了

    2024年02月13日
    瀏覽(27)
  • Java設(shè)計模式——策略模式

    Java設(shè)計模式——策略模式

    1. 策略模式簡介 策略模式: 策略模式是一種行為型模式, 它將對象和行為分開, 將行為定義為一個行為接口和具體行為的實現(xiàn) 策略模式最大的特點是行為的變化, 行為之間可以相互替換 每個if判斷都可以理解為一個策略. 本模式是的算法可獨立于使用它的用戶而變化 2. 模式結(jié)構(gòu)

    2024年02月11日
    瀏覽(35)
  • 設(shè)計模式-策略模式 Strategy

    該模式最常見的應用場景是,利用它來避免冗長的 if-else 或 switch 分支判斷。不過,它的作用還不止如此。它也可以像模板模式那樣,提供框架的擴展點等等。 策略模式,英文全稱是 Strategy Design Pattern。該模式是這樣定義的: Define a family of algorithms, encapsulate each one, and make

    2024年02月20日
    瀏覽(24)
  • 【前端設(shè)計模式】之策略模式

    【前端設(shè)計模式】之策略模式

    設(shè)計模式是在軟件開發(fā)中經(jīng)過驗證的解決問題的方法。它們是從經(jīng)驗中總結(jié)出來的,可以幫助我們更好地組織和管理代碼,提高代碼的可維護性、可擴展性和可重用性。無論是前端還是后端開發(fā),設(shè)計模式都扮演著重要的角色。在本專欄中,我們將探索一些常見的前端設(shè)計模

    2024年02月04日
    瀏覽(37)
  • 【設(shè)計模式 行為型】策略模式

    它允許在運行時根據(jù)需要選擇算法的行為。該模式通過將算法封裝成獨立的類,使得它們可以相互替換,而不影響使用算法的客戶端代碼。 策略模式主要包含以下角色: 環(huán)境(Context):環(huán)境對象持有一個策略對象的引用,它提供了一個接口用于執(zhí)行具體的算法。 抽象策略(

    2024年01月20日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包