目前正在开发一款游戏机。 在稍后阶段将其开发到Windows界面。
想知道以下事项:
1.目前我有几个持有游戏逻辑的课程。
我还有一个用于管理整个游戏的类和一个管理使用游戏管理器的控制台视图的类。
正在通过Program类(使用void main)访问管理视图的类
问题是:对于我应该用于上述每个类(一般)的Access修饰符,我应该使用内部还是公共?
考虑到我希望这适用于任何后续实现,而无需更改游戏逻辑部分的代码。
2.a.在NameSpaces或Projects的代码组织方面,应如何组织?
我应该在同一解决方案下创建两个命名空间(项目):
一个将保存游戏逻辑类,第二个是程序类和管理控制台视图的类?
b。访问修饰符现在应该如何按照这样的安排?
对不起,故事很长
感谢
答案 0 :(得分:2)
我会分离程序集,并使用“视图逻辑”创建一个程序集,将输入/输出映射到您选择的用户界面(控制台,WinForms,WPF,XNA),以及另一个包含游戏逻辑的程序集。 / p>
现在为你的游戏逻辑的访问修饰符:
类:将其中大部分内部化,并且只公开需要从UI访问的类。
方法/属性:仅公开您真正需要的方法和属性,将其保密,直到其他类需要访问,然后根据需要将它们设置为内部/公共。
答案 1 :(得分:0)
我们有一个将所有访问者设置为私有的规则,并在需要时将它们设置为公共。这只是为了减少视觉工作室中自动完成的混乱。
从私有到公共的更改不会破坏现有代码,但需要重新构建才能再次运行。如果这是可以接受的,我只需添加最禁止的访问者,并在需要时使其更公开。
根据复杂程度,我会在需要时添加项目以及可以重用整个dll的位置。
答案 2 :(得分:0)
On 2:您可以将逻辑放在项目的新文件夹中。这会自动创建一个新的命名空间,为您节省多个项目及其依赖项的麻烦。
答案 3 :(得分:0)
最佳做法是不要将您的课程设置为公开,除非他们需要公开。听起来你可以通过内部的主要程序将所有东西分开来实现。
@ Residuum关于拆分为不同接口的单独项目的建议是有道理的,但前提是你松散地结合游戏逻辑和接口代码。如果它有很强的依赖性,那么它就没有意义了。
您似乎对命名空间和程序集(项目)略有不安,因此这可能对您有用。 http://msdn.microsoft.com/en-us/library/ms973231.aspx