策略模式 C 實現

2021-06-14 21:13:59 字數 1005 閱讀 2928

#include#include#include/*

問題:和工廠模式的本質區別?

*/ using namespace std;

/*abstract sort class --- strategy class*/

class super_sort

virtual void sort(int *a,int l, int r)

};/* concrete sort --- concret strategy */

/*quicksort*/

class quick_sort: public super_sort

swap(&a[i],&a[r]);

return i;

}void quicksort(int *a,int l,int r)

public:

void sort(int *a, int l, int r)

};/*insert sort*/

class insert_sort: public super_sort

void sort_list()

};/*

策略模式 和 簡單工廠模式的 區別:

簡單工廠模式讓客戶端識別兩個類,而策略模式只讓客戶端識別乙個類;

耦合更加低。

*//*client class*/

int main()

; context my_selection;

my_selection.sort_list();

cin >> num;

my_selection.select_sort(num,a,0,9);

cout <<"-------- result ---------"<< endl;

for(int i = 0; i < 10; i++)

cout

return 0;

}

總結:無。

c 實現策略模式

策略模式 strategy 它定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。上面是 大話設計模式 中給出的定義,感覺這個概念給的不好,看了之後不能完全清晰明白該模式 可能自己水平太水的原因吧 在 effective c 中指出,策略模式是v...

C 策略模式實現

策略模式 它定義了演算法家族,分別封裝起來,讓它們之間可以相互替換,此模式讓演算法的變化,不會影響到使用的客戶。strategy.cpp 定義控制台應用程式的入口點。include stdafx.h includeusing namespace std class strategy class co...

C 策略模式實現

收銀時,無論是打折還是滿減和積分,其實內容都封裝一些具體的演算法實現,這些演算法本身都只是一些策略。在物件導向中,乙個 經常會做各種活動,由於簡單工廠模式中包含了所有的收費方式,經常殺熟客,每次如果重新建立收費方式,都需要重新部署,變得非常麻煩,這些演算法本身都只是一種策略,咱們就把策略的不同區別看...