策略模式 商場促銷

2021-06-20 01:42:06 字數 1780 閱讀 6913

封裝的簡單策略類

#ifndef _stratege_h_

#define _stratege_h_

#include

using namespace std;

class stratege

};class concretestrategea : public stratege ;

class concretestrategeb : public stratege ;

///class context

void contextinte***ce()

private:

stratege *stratege;

};

#endif//~_stratege_h_

/ main

#include "stdafx.h"

#include "strategy.h"

int main(int argc, char* argv)

/之前的cash

類#ifndef _stratege_h_

#define _stratege_h_

#include

using namespace std;

//現金//

策略類和

cash

簡單工廠類區別

#ifndef _stratege_h_

#define _stratege_h_

#include

using namespace std;

//現金class cashsuper

};class cashnormal : public cashsuper

virtual double acceptcash(double money)

};class cashrebate : public cashsuper

cashrebate(int rate)

virtual double acceptcash(double money)

private:

int rate;

};class cashreturn : public cashsuper

cashreturn(int a ,int b)

double acceptcash(double money)

private:

int a,b;

};//

現金工廠類

class cashfactory

return super;

} private:

cashsuper *super;

};//

感覺策略模式就是給簡單工廠的生成,放到了建構函式中,下面的和策略模式一樣

class cashcontext

double getresult(double money)

private:

cashsuper *super;

};/*

main()

下面的圖才是真正實現的,只需要認識乙個類就行了。減少了耦合度。

商場促銷 策略模式(設計模式)

商場收銀時,如何 用打折還是返利,其實都是一些演算法,用工廠來生成演算法物件,這沒有錯,但演算法本身只是一種策略,最重要的是這些演算法是隨時都可能互相替換的,就這點變化,而封裝變化點是我們物件導向的一種很重要的思維方式。來看看策略模式的結構圖和基本 策略模式 strategy 定義了演算法家族,分別...

第2章 商場促銷 策略模式

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

大話設計模式二 策略模式(商場促銷)

策略模式 它定義了演算法家族,分別封裝起來,讓它們之間可以相互替換,此模式讓演算法的變化,不會影響到使用的演算法客戶。應用案例 商場 的多樣性 折扣,滿減,積分 package strategy abstract class cashsuper class cashnormal extends ca...