語言設計模式之策略模式

2021-07-09 13:23:45 字數 695 閱讀 6956

策略模式作為一種

軟體設計模式

,指物件有某個行為,但是在不同的場景中,該行為有不同的實現演算法。比如每個人都要「交個人所得稅」,但是「在美國交個人所得稅」和「在中國交個人所得稅」就有不同的算稅方法。----來自維基百科.

我寫了乙個很簡單的策略模式,大概表示下其中用到的思想.

#include //定義了三種策略

void strategy_1(void)

void strategy_2(void)

void strategy_3(void)

void *strategy_func(void (*strategy)(void))//策略模式統一的訪問介面

int main()

再來個實際應用的例子:

#include void print(int* a, int n)}}

}int main()

; print(a, 10);

sort(a, 10, rule1);

print(a, 10);

sort(a, 10, rule2);

print(a, 10);

sort(a, 10, rule3);

print(a, 10);

return 0;

}

策略設計模式 Go語言設計模式 策略

策略設計模式 策略模式是一種行為設計模式。此模式允許在執行時不需要更改物件的型別定義時就能改變該物件的行為。用乙個例子來理解策略模式。假設構建乙個快取inmemorycache,它擁有固定的容量大小,當達到其最大容量時,快取中的某些舊項需要被逐出,這種驅逐可以通過幾種演算法來實現 現在的問題是如何將...

設計模式之策略模式

include using namespace std 飛行行為介面類 class flystrategy 高空飛行行為具現類 class heightfly public flystrategy virtual void fly private heightfly 低空飛行行為具現類 class ...

設計模式之 策略模式

策略模式 strategy pattern 定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。策略模式是一種定義了一系列演算法的方法,從概念上來看,所以得這些演算法完成的都是相同的工作,只是實現不同,它可以以相同的方式呼叫所有的演算法,減少了各...