【发布时间】:2015-04-23 06:30:15
【问题描述】:
我正在为班级设计而苦苦挣扎。有时我认为我所读到的关于类组织、类图和类设计的所有内容都不适用于具体项目。我想使用 MVC 或 MVP 架构在 Java 中创建 Snake 游戏。
有一些要求:
- 应在屏幕上绘制蛇和蛇的食物
- 应该显示当前游戏分数
- 蛇应该使用键箭头移动
- 食物应该被分组,这样每组都有一些点和颜色
- 游戏速度应根据分数阈值确定
问题是如何根据这些要求组织类(使用方法和“全部”)?也许有人有一本书或链接可以提供指导或示例。
请您分享您通过此示例创建和组织课程的经验法则吗?
【问题讨论】:
-
这个问题可能适合programmers.stackexchange.com。你试过任何设计/类图吗?
-
你会怎么解决?提出您的建议和想法以供进一步讨论。
-
1/2 - 只有想法,不是完整的答案,也是众多解决方案中的一种。这是基于我的经验,这主要是除了游戏之外的任何东西。 M - 蛇和食物将在
model包中,并具有length或baseValue等属性(假设您根据级别乘以该值)。 C - 然后,您将拥有一个控制器,该控制器将确定分数、速度、(分数乘数)……并控制蛇获取食物、吃自己等时的事件。最后是 V - 处理图形、输入(键盘箭头)等的类。 -
2/2 - 为了使事情更容易,我建议将每个部分分组在一个单独的包中(所有模型都在
dto或model包中,控制器在controller包中并查看ui包)。当然,请随意制作子包。在较大的项目中,当使用 Maven 时,我发现有时为这三个模块中的每一个创建一个单独的 Maven 模块甚至很有用。除了可读性之外,保持包分开更容易更改:如果您希望从 Web 应用程序切换到客户端,您几乎不应该接触ui包之外的任何东西(好吧,web 是这种情况下的坏例子......) . -
@LittlePanda - 对于程序员来说,这只是话题。一般来说,社区更愿意看到更多的设计尝试,而不是这个问题所呈现的内容。
标签: java class architecture rule