一种去中心化的manager设计思路
生活随笔
收集整理的這篇文章主要介紹了
一种去中心化的manager设计思路
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一種去中心化的manager設計思路
通常,我們設計游戲引擎時,或者管理器時,都會由管理器產出各種產品,一旦有新產品要加,就要修改管理器,來增加相應的生成代碼。
這從設計上來看有兩個問題:
1,管理器參數需要有個類型,在管理器中用if else根據類型來生產不同產品
2,違反了設計原則“對修改封閉,對擴展開放”
使用者使用時要通過管理器來生產對象。這是明顯的中心化。
去中心化設計:
仍然有管理器,對使用者不可見。管理器類有一個靜態創建函數,用于創建產品:
class product : Object {
public static Object Create(int id) {
var obj = objMgr.tryGet(id);
? if(!obj) {
obj = new product(id);
objMgr.Add(obj)
}
return obj;
}
posted on 2018-09-23 16:50 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏
總結
以上是生活随笔為你收集整理的一种去中心化的manager设计思路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RTS寻路相关资料收集
- 下一篇: C#开发VS LUA开发