簡體   English   中英

我應該為我的簡單游戲類添加接口嗎?

[英]Should I add interfaces for my simple game classes?

我正在嘗試為一個簡單的游戲創建一個 UML class 圖。 我有三個 inheritance 類( NPCPlayerMonster ),它們應該相互交互(例如在攻擊中)。

我想知道我是否應該在我的簡單案例中使用接口。 另外我怎樣才能擴展我的圖表?

uml 圖

您的 class Character專用於: NPC (非玩家角色)、 PlayerMonster ,您想知道是否需要一個界面:

  • 由於Monster似乎是非玩家角色,它可能應該繼承自NPC而不是Character
  • 由於人類玩家實際上不是角色,而只是恰好由游戲中的角色代表,因此將Player和相應Character的職責分開可能會很有趣。 所以你會在兩者之間有一個簡單的關聯,而不是 inheritance。一個直接的優勢是,玩家可以選擇喜歡的角色來模仿他/她。
  • 調解器可用於管理游戲中所有角色之間的交互。 你可以創建一個Colleague接口,讓不同的類實現這個接口。 但是如果你的Colleagues一定都是Characters ,你可以像你一樣依賴超類。

更一般地說,如果你想解耦類,一個額外的接口是一種行之有效的方法。 如果您要開發一個要在許多不同游戲中重復使用的游戲引擎,您應該明確地考慮它們:您將擁有一個僅依賴於獨立於任何特定游戲的接口的引擎。 然后每個游戲都會選擇相關的類來實現接口。 但是對於您的具體情況,這似乎有點矯枉過正。

話雖這么說,您將面臨的主要挑戰是您最終會遇到難以發展的深層 class 層次結構。 這就是為什么游戲行業更喜歡實體-組件-系統模式,這種模式比 inheritance 更喜歡組合。但這是一個不同的故事,並且有關於該主題的完整書籍;-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM