日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

《游戏编程模式》读书笔记之一

發(fā)布時間:2025/3/19 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《游戏编程模式》读书笔记之一 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

觀察者模式

一、需要注意的地方

同步、異步

(1)對事件同步響應,被觀察者有可能會阻塞
(2)對事件異步響應,如果觀察者試圖獲得被觀察者的鎖,游戲就進入死鎖。要使用事件隊列來做異步通信

動態(tài)分配內(nèi)存

(1)觀察者列表的添加和刪除,需要動態(tài)分配內(nèi)存。 (2)使用鏈式觀察者,無需動態(tài)分配內(nèi)存。當觀察者接到通知,它返回了一個標識,表明被觀察者是否應該繼續(xù)遍歷觀察者列表。這涉及到職責鏈模式

銷毀被觀察者、觀察者(云式原則:有始有終原則)

銷毀被觀察者,需要讓觀察者接收到一個“死亡通知”,自動取消注冊 維基百科有個專門的名字:失效監(jiān)聽者問題

二、時代在變

觀察者模式在面向?qū)ο缶幊讨写笮衅涞?#xff08;Java中的java.util.Observer、C#中的delegate/event),但沉重而且死板。 例如:觀察者只有一個OnNotify()方法,觀察者監(jiān)聽多個被觀察者,它不能為不同的被觀察者調(diào)用不同的通知方法 作者的觀點: (1)C++克服了在沒有垃圾回收語言構建閉包的弱點,甚至Java在JDK8中引入了閉包。(作者非常青睞C++,我也想學) (2)傾向于注冊一個成員函數(shù)指針作為觀察者,而不是Observer接口的實例

原型模式

完全沒看懂,作者很叼,我需要努力。

單例模式(避免使用)

優(yōu)點: 全局唯一,需要時再創(chuàng)建實例,可繼承 缺點: (1)由于全局變量,到處被引用,促進耦合,代碼理解困難(例如日志類) (2)每個線程都能訪問,卻不知道其他線程是否正在使用,導致競爭、死鎖。 (3)惰性初始化可能發(fā)生在游戲的性能高峰期,無法控制

總結:

(1)單例類有時候并不需要,非要裝逼??梢允褂没?、靜態(tài)函數(shù)等 (2)使用單例,但不一定是全局訪問(子類沙箱模式) PS. ? ?惰性初始化要注意多線程問題

狀態(tài)模式

單獨寫了一篇文章

轉(zhuǎn)載于:https://www.cnblogs.com/fuyunzzy/p/7456346.html

總結

以上是生活随笔為你收集整理的《游戏编程模式》读书笔记之一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。