天氣效果中使用多種設計模式示例

2021-07-03 15:39:40 字數 1596 閱讀 9561

1.**模式

environmenteffec中定義關於霧效,燈光等**。通過**,proxy 實現具體的效果  

fogproxy * getfogproxy();

lightproxy * getlightproxy();

trivialproxy * gettrivialproxy()

定義fogproxy, lightproxy,skylayerproxy,trivialproxy 類 以及類中的函式,實現新增霧效,光效,天空等效果. 

class fogproxy

; ~fogproxy(){};

void setfogfar(float fogfar, float alpha);;

float getfogfar()const ;

void setfognear(float fognear, float alpha);;

float getfognear()const ;

void setfogcolor(const colorvalue & color, float alpha);;

const colorvalue & getfogcolor()const ;

void setfogdensity(float density, float alpha);;

float getfogdensity()const ;

void setfogenable(bool enable)

bool getfogenable()const

protected:

float mfogfar;

float mfognear;

colorvalue mfogcolor;

float mfogdensity;

bool mfogenable;

};

2.命令模式

建立weathercommand,

class weathercommand

; virtual ~weathercommand(){};

virtual void docommand(environmenteffect * env, float timealpha, float regionalpha, float filteralpha) = 0;

virtual const tstring & getcommandid() = 0;

virtual const tstring & getclassid() = 0;

void notifyweather(weather * weather);

protected:

weather * mweather;

};

3.工廠

模式 在類weathercommandfactory中使用工廠模式建立,銷毀天氣命令。之後可以派生出各種天氣命令。

class weathercommandfactory

;

其中registerallcommand() 註冊各種產生天氣命令

實戰中使用設計模式 簡單工廠模式

1.簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法模式。它的實現方式是由乙個工廠類根據傳入的引數,動態決定應該建立哪乙個產品類 這些產品類繼承自乙個父類或介面 的例項。2.簡單工廠模式由三種角色組成 3.場景 4.實現 我們將建立乙個 paymentmethod 介面和實現 paymentmeth...

Spring中使用設計模式(一 策略模式)

前幾天看到新來的同事桌上有一本設計模式的書,想起許多年前自己啃厚厚的模式時,始終昏昏欲睡,不得要領那段時光。重整思路,結合spring,寫下現在在開發中常用的設計模式使用方式。在工作中最常用的就是策略模式了,也可以說是策略模式的簡化版。客戶端可以決定用那種策略,呼叫上下文,上下文使用具體策略做具體的...

在WPF設計器中使用示例資料

在wpf程式中,當我們給繫結的資料來源編寫datatemplate時,往往想在設計器中看到效果,這時就需要在設計器中新增一些示例資料。如果實現這一功能呢?一種簡單的做法是在 中手動新增,publicmainwindow 關於這種方式的示例可以參看這篇文章 custom listbox itemtem...