我正在开发一款小型 Java 游戏,它是 1995 年游戏 Theme Hospital 的一种克隆。 我最近一直在研究 GUI 和关卡结构,现在我可以进行路径查找和网格工作。 我目前“ build 东西”的方式包括一个房间和一个接待台,到目前为止一切正常,但我需要实现一种方法来添加不同类型的房间和元素。 这是我当前用于创建对象的按钮按下代码 (http://snipt.org/lUm)。
我相信一定有更好的方法来做到这一点!我知道我的实现很差,但我最近才开始理解如何使用抽象类和接口(interface)。
实际设置房间或元素的属性,我目前没有问题。我正在考虑超前,但我喜欢在 Stack 上就最佳做事方式获得不同意见的方式。关于如何实现这样的事情的想法?这种事情的任何例子?我会搜索它,但我不确定要搜索什么,因为如果我正在做的事情有一个确切的名称,我就不知道。
如果我不太清楚我在说什么,我很抱歉。我很乐意回答任何关于此的进一步问题,或根据需要或请求上传更多代码部分。
提前感谢您的时间和想法!
最佳答案
查看 factory pattern .工厂是一种通过提供参数来创建对象并取回遵循公共(public)接口(interface)的对象的方法。然而,实现由工厂决定。调用代码不需要知道这一点。
通过将对象构造封装在另一个对象(工厂)中,选择要构建的特定对象的机制从调用代码中抽象出来。您可以在以后轻松地提供更多的子类,只需修改工厂本身。
所以在您的示例代码中,buildMe()
方法是一种工厂形式。它需要一些参数来指定需要构建的内容 - Room
或 ReceptionDesk
。这两者都将实现相同的接口(interface)(HospitalComponent
?),然后调用代码将该组件放置在医院内。您可以将 HospitalComponent 的更多子类添加到工厂(OperatingTheatre
?)并且调用代码不必更改。
值得研究design patterns (在这种情况下,请查看 creational patterns 列表)以了解使用对象解决常见问题的不同方式,以及如何与其他人交流您的解决方案。 Gang-of-Four这本书是这门学科的圣经。
关于java - "build"现在我已经实现了多态性,应该怎么办? (Java,模拟游戏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1219943/