一种去中心化的manager设计思路
一種去中心化的manager設(shè)計(jì)思路
通常,我們設(shè)計(jì)游戲引擎時(shí),或者管理器時(shí),都會由管理器產(chǎn)出各種產(chǎn)品,一旦有新產(chǎn)品要加,就要修改管理器,來增加相應(yīng)的生成代碼。
這從設(shè)計(jì)上來看有兩個(gè)問題:
1,管理器參數(shù)需要有個(gè)類型,在管理器中用if else根據(jù)類型來生產(chǎn)不同產(chǎn)品
2,違反了設(shè)計(jì)原則“對修改封閉,對擴(kuò)展開放”
使用者使用時(shí)要通過管理器來生產(chǎn)對象。這是明顯的中心化。
去中心化設(shè)計(jì):
仍然有管理器,對使用者不可見。管理器類有一個(gè)靜態(tài)創(chuàng)建函數(shù),用于創(chuàng)建產(chǎn)品:
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 時(shí)空觀察者9號 閱讀(...) 評論(...) 編輯 收藏
總結(jié)
以上是生活随笔為你收集整理的一种去中心化的manager设计思路的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RTS寻路相关资料收集
- 下一篇: UNITY Profiler 真机调试