編輯:Android游戲開發
在本次教程中,我們將完成Food這個類的設計。這是游戲相當關鍵的一部分,直接決定了游戲的可擴展性、可玩性。。。
進入正題:
先給大家看下Food類的類圖:
從圖中我們可以看到有多種食物,並且它們具有很多相同的屬性和方法。所以我們很容易想到使用繼承Food類。
新的類圖就變成這個樣子了:
這樣當我們為游戲添加新的事物類型時只需要繼承Food類並重寫draw方法就可以了。(不同的食物,所表現的外觀不同,所以需要具體的食物類,自己實現這個方法)
但是還有一點值得注意:每一個食物都有多種運動方式。如:水平運動,垂直運動,靜止。。。如果將這些方式寫在具體的事物類裡面,首先這個move方法會變得很復雜,裡面會有各種分支,判斷。。。
那麼如果後期我們對游戲進行升級,比如增加一種新的運動方式,或者刪除一種新的運動方式將變得非常繁瑣,而且也不利於代碼的復用。
這個時候我們需要采用這樣一種設計模式:策略模式。
我們把move這個方法抽象為一個類MoveBehaviour。
那麼新的類圖就是這個樣子了:
當我們需要添加新的運動方式時,只需要寫一個類繼承MoveBehavior,並實現具體的move方法就可以了。
這樣就完成了食物類的設計了。我們這樣設計之後,就可以非常靈活的創建新的食物,並為其添加新的運動方式了。。。了不起!!!
給大家看下項目的結構圖:
通過將源碼放在對應的package裡面更利於游戲的管理。