想要利用現有的遊戲專案的重構當作例子,配合這幾年看過的書籍資料,說明如何寫出即使這些程式放了幾年後依然還可以拿來使用與增加功能的相關能力。
狀態模式(State),在GoF 中的解釋是:「讓一個物件的行為隨著內部狀態的改變而變化,而該物件也像是換了類別一樣。」 以流離之歌這款遊戲來說,在操作上就有以...
接續昨天的文章,在這次的範例中,是希望更改CALGUIController裡顯示回合階段的判斷條件,在重構前我是這樣去做回合階段的顯示CALGUIControl...
外觀模式(Facade)在GoF 的解釋是:「替子系統定義一組統一的介面,這個高階的介面會讓子系統更容易被使用。」 使用Facade的最大優點,就是將系統內部的...
仲介者模式(Mediator)在GoF中的說明是:「定義一個介面用來包裝一群物件的互動行為。仲介者藉由移除物件間的引用,來減少它們之間的耦合度,並且能讓你改變...
GoF對工廠方法模式 (Factory Method) 的解釋是:「定義一個可以產生物件的介面,但是子類別決定要產生哪一個類別的物件。工廠方法讓類別的實例化程序...
在這款遊戲中,我們共有兩個敵方單位、一個障礙物單位、兩個玩家單位,在這個範例中,我想用Factory模式來實作生成單位在地圖上的功能。 如果今天要實作一個隨機生...
GoF對於Observer的定義為「在物件之間定一個一對多的的連結方法,當一個物件變換狀態時,其它關連的物件都會自動收到通知」 你也可以這樣說—Observ...
今天我想重構的,是下圖中那個更新麵包獲取數的UI程式 重構前的程式碼 GetFoodAndFleeGameEndCondition.cs private voi...
GoF定義將抽象與實作分離,讓他們之間的變化獨立 在這次的範例中,會以怎麼讓三種形狀的物件擁有染上相對應顏色的程式作為例子。在這邊我們將渲染顏色的功能抽象化...
在這次的範例裡,主要是說明IUnit如何取用ActionAbility的使用 這邊的AbilityEditor是用來擺放技能的地方,只要擺上對應的技能就可以在遊...