2011-03-24 196 views
1

目前正在開發一款控制檯遊戲。 在後面的階段將它開發到windows界面。面向對象設計

想知道以下幾點:
1.目前我有幾個掌握遊戲邏輯的類。 我還有一個班級負責管理整個遊戲,還有一個班級負責管理使用遊戲管理器的控制檯的視圖。正在通過Program類訪問 ,其管理所述視圖中的類(具有空隙主)
問題是:其中我應該使用用於每個類別的上述的(一般)訪問改性劑的問題,我應該使用內部還是公共? 考慮一下,我希望這適用於以後的任何實現,而不必更改遊戲邏輯部分的代碼。

2.a。對於NameSpaces或Projects的代碼組織,應該如何組織?
我應該在相同的解決方案下創建兩個名稱空間(項目): 一個會保存遊戲邏輯類,其次是程序類和管理控制檯視圖的類?
b。訪問修飾符現在應該如何按照這樣的安排?
對不起,說來話長
感謝

+0

我目前... 我想知道... 閱讀更好作爲一個問題 – CodingBarfield 2011-03-24 10:58:05

回答

0

我們必須將所有的存取私人的規則,將其設置爲公共需要的地方。這只是爲了減少視覺工作室中自動完成的混亂。

從私有到公共的更改不會破壞現有代碼,但需要重新編譯才能再次運行。如果這是可以接受的,我只是添加最高限度的訪問者,並在需要時讓他們更公開。

根據複雜性,我會在需要時添加項目以及整個dll可以重用的位置。

2

我會分離程序集,並用「視圖邏輯」創建一個程序集,它將輸入/輸出映射到您選擇的用戶界面(控制檯,WinForms,WPF,XNA)以及包含遊戲邏輯的另一個程序集。

現在你的遊戲邏輯的訪問修飾符:

  1. 類:讓大部分內部,只有公開揭露類,你需要從你的UI訪問。方法/屬性:只展示你真正需要的方法和屬性,保持它們是私人的,直到其他類需要訪問,然後根據需要使其成爲內部/公共。

0

2:您可以將邏輯放置在項目的新文件夾中。這會自動創建一個新的名稱空間,併爲您節省多個項目及其依賴關係的麻煩。

0

最佳實踐會說,除非他們需要公開,否則不要將您的課程設置爲公開課程。聽起來就像你可以脫離主流程序內部的一切。

@ Residuum關於將不同接口拆分成獨立項目的建議是有道理的,但前提是你鬆散地將遊戲邏輯和接口代碼耦合在一起。如果它有很強的依賴性,那就沒有意義了。

您似乎對名稱空間和程序集(項目)有些困惑,所以這可能對您有用。 http://msdn.microsoft.com/en-us/library/ms973231.aspx