讀書筆記 軟體設計原則 設計模式

2022-07-02 16:48:10 字數 2361 閱讀 3698

這個作業屬於哪個課程

這個作業要求在**

/homework/11833

這個作業的目標

讓學生了解和學習軟體設計的原則、模式,並結合自身開發經歷加深對相應知識的理解

參考書籍

《game programming patterns》—— robert nystrom

內容簡介:許多遊戲程式設計師因為它們自己的**太複雜了導致遊戲專案失敗。本書解決了這個問題。基於多年的經驗,以開發模式模式解開和優化遊戲,作為獨立的工具書,使你可以選擇你需要的模式組織。

架構,效能和遊戲
重訪設計模式

命令模式

享元模式

觀察者模式

原型模式

單例模式

狀態模式

序列模式

雙緩衝模式

遊戲迴圈

更新方法

行為模式

位元組碼

子類沙箱

型別物件

解耦模式

元件模式

事件佇列

服務定位器

優化模式

資料區域性性

髒標識模式

物件池模式

空間分割槽

命令模式精簡定義為:

命令是具現化的方法呼叫。命令模式是一種**的物件導向實現。

在每個遊戲中都有一塊**讀取使用者的輸入——按鈕按下,鍵盤敲擊,滑鼠點選,諸如此類。 這塊**會獲取使用者的輸入,然後將其變為遊戲中有意義的行為:

乙個手柄, a鍵呼叫swapweapon(),b鍵呼叫lurch(),x鍵呼叫jump(),y鍵呼叫firegun()。

下面是一種簡單的實現:

`void inputhandler::handleinput()

`

基類代表可觸發的遊戲行為:

`class command

virtual void execute() = 0;

};`

當你有介面只包含乙個沒有返回值的方法時

我們為不同的遊戲行為定義相應的子類:

`class jumpcommand : public command

};class firecommand : public command

};`

為每個按鍵儲存乙個指向命令的指標。

`class inputhandler

;`

處理輸入處理部分:

`void inputhandler::handleinput()

`

注意在這裡檢測null同時我們可以定義乙個命令類,它的execute()什麼也不做。 這樣,某些按鍵處理器不必設為null,只需指向這個類。這種模式被稱為空物件。

儲存

心得體會

1、這本書雖然是全英的但是這本書將遊戲開發中經常涉及到的程式設計模式拎出來,結合具體開發中遇到的例項一步步的引出對應的模式,而且演算法很少讓我很容易能懂;

2、同時這本書教會了我要用合適的方法去解決問題,現實中我們面臨的問題往往不是手裡沒有解決問題的工具,而是我們經常答非所問,不能對症下藥,這比不使用任何設計模式還可怕。;

3、同時學習這本書讓我開闊了很大的視野,聽到了很多從沒聽過的知識。

4、現在程式這與冒險遊戲主要的不同是,程式不是等待文字指令,而是等待使用者輸入事件——滑鼠點選、按鍵按下之類的。 其他部分還是和以前的老式文字冒險遊戲一樣,程式阻塞等待使用者的輸入,這是個問題。

不像其他大多數軟體,遊戲即使在沒有玩家輸入時也繼續執行。 如果你站在那裡看著螢幕,遊戲不會凍結。動畫繼續動著。視覺效果繼續閃爍。 如果運氣不好的話,怪物會繼續吞噬英雄。

事件迴圈有「空轉」事件,這樣你可以無需使用者輸入間歇地做些事情。 這對於閃爍的游標或者進度條已經足夠了,但對於遊戲就太原始了。

這是真實遊戲迴圈的第乙個關鍵部分:它處理使用者輸入,但是不等待它。迴圈總是繼續旋**

之前的程式是這樣

`

while (true)

但現在可以優化成如此

while (true)

`

後台編輯

讀書筆記 軟體設計原則 設計模式

設計模式 可復用物件導向軟體的基礎 這些原則並不是必須要嚴格遵守的,但謹記這些原則會讓我們設計出更好的 christopher alexander說過 每乙個模式描述了乙個在我們周圍不斷重 生的問題,以及解決該問題的解決方案的核心 一般而言,乙個模式有四個基本描述 結構型模式 行為型模式 參考個人部...

讀書筆記 軟體設計原則 設計模式

讀書筆記 軟體設計原則 設計模式 這個作業屬於哪個課程 這個作業要求在 homework 11833 這個作業的目標 學習軟體設計模式相關原則 筆記 設計模式的六大原則 開閉原則 對拓展開放,對修改關閉 在程式需要進行拓展的時候,不能去修改原有的 實現乙個熱插拔的效果。簡而言之,就是為了使程式的拓展...

讀書筆記 軟體設計原則 設計模式

這個作業屬於哪個課程 軟體 開發技術 這個作業要求在 讀書筆記 軟體設計原則 設計模式 這個作業的目標 理解設計模式對於軟體設計的重要性,在反思中加深理解 設計原則 概述開閉原則 應該能做到在不修改現有 的基礎上引入新功能 單一職責原則 乙個類對應乙個功能 依賴倒置原則 抽象化程式設計,物件導向而不...