遊戲中的設計模式 工廠模式

2021-06-20 16:58:30 字數 1273 閱讀 9463

現在的網遊更新很快,要延長網路遊戲生命週期的方法是,更新,不斷地更新,不斷的將新內容呈現於玩家面前。這要求遊戲程式的設計要有彈性,**的重用至關重要。

今天就說說遊戲中的工廠模式。

說到工廠模式,有簡單工廠模式,工廠方法模式,抽象工廠模式。

(一)簡單工廠模式

ps:物件導向的程式設計,並不是類越多越好,類的劃分是為了封裝,但分類的基礎是抽象,具有相同屬性和功能的物件的抽象集合才是類。

主要用於建立物件。新新增類時,不會影響以前的系統**。核心思想是用乙個工廠來根據輸入的條件產生不同的類,然後根據不同類的virtual函式得到不同的結果。

(工廠類與基類為關聯關係)

//基類

class coperation

};

//加法

class addoperation : public coperation

};

//減法

class suboperation : public coperation

};

//工廠類

class ccalculato***ctory

;coperation* ccalculato***ctory::create(char coperator)

return oper;

}

客戶端

int main()

優:修正了簡單工廠模式中不遵守開放-封閉原則。工廠方法模式把選擇判斷移到了客戶端去實現,如果想新增新功能就不用修改原來的類,直接修改客戶端即可。

(三)抽象工廠模式

提供乙個建立一系列相關或相互依賴的介面,而無需指定它們的具體類。

//使用者抽象介面

class iuser

;//部門抽象介面

class idepartment

;//access使用者

class caccessuser : public iuser

遊戲中的設計模式之抽象工廠模式

遊戲中需要用到抽象工廠的地方很多,比如 你想得到乙個怪物monster,而我們在遊戲中可能會出現幾十種怪物,而且每種怪物都有自己特有技能,如 大蛇可以發射毒液使你減速,熊會有重擊技能可以將你打暈,老虎會有暴擊技能等等。而怎樣將這些怪初始化並能夠與遊戲中的人物聯絡起來,這地方使用抽象工廠可以解決這些問...

設計模式在遊戲中的應用 簡單工廠模式(一)

自己作為乙個剛畢業的菜鳥,有幸能夠和牛人們一起工作很開心。當時策劃提出乙個需求,需要針對每個職業進行不同的能量恢復。我當時接到這個需求,心中暗喜,這還不簡單,把每個職業的恢復率放到乙個陣列裡面,然後接著各種if.else.當時還為這種能在陣列裡面直接修改資料,讓資料和邏輯分離開來感到開心。接著策劃提...

遊戲中的設計模式 單例模式

遊戲中用到單例模式的例子很多,幾乎適用於系統資源管理類中,如聊天,道具,日誌等等。單例模式 singleton 保證了全域性有且只有乙個例項物件,保證自動地初始化該物件,使得程式在任何時候任何地方都可以訪問 獲取該物件。通常我們可以讓乙個全域性變數使得乙個物件被訪問,但它不能防止你例項化多個物件。乙...