目前分類: 設計模式    檢視方式: 列表 摘要
包裝者模式
xnaOgre 在天空部落發表於21:38:09 | 設計模式
上次有提到說要來談談如何將OGRE包裝起來,好讓.Net專案來使用,包裝者模式正好可以用上。Wrapper pattern,簡單來說就是將A物件包成B,你使用B物件的時候你可能知道也可能不知道你正在使用A物件,但事實上就是在使用B物件。會用到包裝者模式通常都是有特殊需求要用到A物件,但又因為某些原因不能直接使用,例如平台不同、語言不同、或者新舊版本不同,所以我繞一步用B物件來把他包裝起來,透過B來使用它,請看下例:

觀看全文...
表象模式
xnaOgre 在天空部落發表於11:58:59 | 設計模式
表象模式是大專案常會使用的模式,幾乎每個有規模的軟體都會看到,
它主要的工作就是作為一個接口類別(大陸用語),客戶端只對這個類別
互動,不用理會一堆細節,而表象類別內部就自動會處理客戶端不應該做的事
,以OGRE為例,它的root類別就是一個表象類別,隱藏了細節,在ExampleApplication
中可以看到,root只呼叫了Initalize()、CreateSceneManager()、addFrameListener()、
startRendering(),但實際上在這些函式裡面已經默默幫你處理好很多事情。
下面是個類似的例子:




觀看全文...
獨體模式
xnaOgre 在天空部落發表於00:18:21 | 設計模式
獨體模式(又叫單件模式),主要用在該類別如果只需要生成一個實體時,就會需要用到,例如同一個場景管理器,通常你不會希望程式中出現兩個以上,這樣會造成管理上的問題。在OGRE裡面也到處充滿著獨體模式,你只要看到XXX.GetSingleton()就是了,表示該類別只會有一個存在,以目前OGRE還是不支援同時有不同的場景管理器在場景中,室內場景管理器就不能跟室外場景管理器共存(當然還是有辦法,預設沒有),未來有計畫會加入。那究竟該如何實現呢?


觀看全文...
OGRE中的工廠模式
xnaOgre 在天空部落發表於14:45:19 | 設計模式
OGRE內部工廠模式應用的非常多,例如在sample常見的SceneMgr->CreateLight("name");
許多人很好奇為什麼沒有new就可以創建燈光,那是因為在物件導向的模式下,減少實體化
才是明智的做法,當然他本質還是在createInstanceImpl()當中new一個新的燈光,但引擎
封裝了這些細節。以下看看建立一個燈光的流程:

觀看全文...
抽象工廠模式
xnaOgre 在天空部落發表於17:35:34 | 設計模式
抽象工廠模式其實與工廠模式差異不大,內部也是以工廠模式實作,
主要差異在於產品線的擴大,也就是上一篇所說的Product的種類擴增
上篇例子就是指兵種單位,這篇要舉的例子其實不怎麼好,不過足以說
明抽象工廠的應用。


觀看全文...
工廠模式
xnaOgre 在天空部落發表於16:06:08 | 設計模式

工廠模式常出現在物件導向的程式裡面,
無論利用合成或是繼承的方法,都是常會運用到的模式,
一般而言,我們常利用類別多型的威力來完成工廠模式。
其實工廠模式的精華就在下面這一行:




觀看全文...
裝飾者模式
xnaOgre 在天空部落發表於20:36:06 | 設計模式
裝飾者模式可以用在遊戲設計的哪個部分?這個例子我覺得用來介紹裝飾者模式最適合不過了,就是動畫的播放;要怎樣才能設計一個相依性低,擴充又方便的動畫類別呢?當時腦中就想到Decorator這個好用的設計模式,也就是裝飾者模式,只是當時在趕案子就把它擱在一旁,現在有時間就好好把它完成。何謂裝飾者模式,用一個最簡單說法,就是你現在想要實現一個主要的功能,但是它可以附加許多小功能,這些小功能就是所謂的裝飾者,怎麼樣?是不是猜到如何應用到動畫程式上。典型的2D動畫程式,不外乎就是讓圖片動;而秀圖就是我們的主要功能,因為無論怎麼動都是要秀圖吧,但要怎麼動?動法有很多種,有換圖片、透明度變化,平移、旋轉、縮放‧‧等,anyway,這些都是使用者可以去做延伸,很明顯的,這些動法就是我的們附加功能,今天我想要縮放加平移,或是我想要透明度高低變化加上換圖片,這些都可以透過裝飾者模式來達成,覺得很神奇嗎?看看範例就知道實踐上一點都不難。

觀看全文...
狀態模式
xnaOgre 在天空部落發表於20:34:55 | 設計模式
遊戲中可能會用到的狀態模式

觀看全文...
觀察者模式
xnaOgre 在天空部落發表於20:34:12 | 設計模式
遊戲中可能會用到的觀察者模式

觀看全文...
策略模式
xnaOgre 在天空部落發表於20:31:52 | 設計模式

在遊戲中可能用到的策略模式



觀看全文...
系統公告
個人檔案
個人圖檔
ID:xnaOgre
暱稱:兔子安

人氣指數
當日人次:
累積人次:
文章分類
誰推薦我
好時光貼曆
誰來我家
RSS 訂閱
贊助商
其它資訊
本部落所刊登之內容,皆由作者個人所提供,不代表 yam 天空 本身立場。
POWERED BY
POWERED BY 天空部落
會員登入免費註冊