java - "build"现在我已经实现了多态性,应该怎么办? (Java,模拟游戏)

标签 java switch-statement simulator

我正在开发一款小型 Java 游戏,它是 1995 年游戏 Theme Hospital 的一种克隆。 我最近一直在研究 GUI 和关卡结构,现在我可以进行路径查找和网格工作。 我目前“ build 东西”的方式包括一个房间和一个接待台,到目前为止一切正常,但我需要实现一种方法来添加不同类型的房间和元素。 这是我当前用于创建对象的按钮按下代码 (http://snipt.org/lUm)。

我相信一定有更好的方法来做到这一点!我知道我的实现很差,但我最近才开始理解如何使用抽象类和接口(interface)。

实际设置房间或元素的属性,我目前没有问题。我正在考虑超前,但我喜欢在 Stack 上就最佳做事方式获得不同意见的方式。关于如何实现这样的事情的想法?这种事情的任何例子?我会搜索它,但我不确定要搜索什么,因为如果我正在做的事情有一个确切的名称,我就不知道。

如果我不太清楚我在说什么,我很抱歉。我很乐意回答任何关于此的进一步问题,或根据需要或请求上传更多代码部分。

提前感谢您的时间和想法!

最佳答案

查看 factory pattern .工厂是一种通过提供参数来创建对象并取回遵循公共(public)接口(interface)的对象的方法。然而,实现由工厂决定。调用代码不需要知道这一点。

通过将对象构造封装在另一个对象(工厂)中,选择要构建的特定对象的机制从调用代码中抽象出来。您可以在以后轻松地提供更多的子类,只需修改工厂本身。

所以在您的示例代码中,buildMe() 方法是一种工厂形式。它需要一些参数来指定需要构建的内容 - RoomReceptionDesk。这两者都将实现相同的接口(interface)(HospitalComponent?),然后调用代码将该组件放置在医院内。您可以将 HospitalComponent 的更多子类添加到工厂(OperatingTheatre?)并且调用代码不必更改。

值得研究design patterns (在这种情况下,请查看 creational patterns 列表)以了解使用对象解决常见问题的不同方式,以及如何与其他人交流您的解决方案。 Gang-of-Four这本书是这门学科的圣经。

关于java - "build"现在我已经实现了多态性,应该怎么办? (Java,模拟游戏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1219943/

相关文章:

c++ - 使仿真具有确定性(基于 qemu 的仿真器)

java.io.IOException : error=2, 没有那个文件或目录

java - 对java中的对象列表进行排序

java - 3DES的手动实现(学术)

'where' 子句中的 SQL Switch/Case

php - 使用不带花括号的 switch 语句的优点和缺点

Swift 4.0 MapView 运行缓慢

java - 在JAVA中读取SPSS 'code'文件

java - 如何将字符串切成两部分并将子字符串传递给不同的函数?

simulator - iOS8模拟器错误