【发布时间】:2012-04-16 14:56:48
【问题描述】:
我正在为 Java 编程课程编写文本冒险游戏。我正在设置带有父 abstract 房间类的房间,每个房间都将从中继承和配置。
对于出口,房间只会调用.addExit() 方法并传递一个出口对象。游戏应该只有每个房间的一个实例。退出对象应该有一个 target 字段,指向在构造函数中初始化的游戏房间之一。
我的问题是我不知道如何将退出构造函数传递给预先存在的房间引用而不是新的房间对象。在我看来,有两种可能的方式:
- 直接向出口构造函数传递对房间实例的引用。
- 有一个静态类来跟踪所有房间实例,并有从字符串名称或类等返回实例的方法。
然后向出口对象的构造函数传递一种标识目标房间的方法,例如一个唯一的字符串名称,然后对象构造函数使用该方法调用返回房间实例的静态类方法之一。
我不确定哪个是最好的选择,如何实现这两个选项,或者是否有更好的方法。
【问题讨论】:
-
听起来像是(双)链表模式。
-
你过于复杂了
-
房间对象不只是将它们的
this传递给 addExit 构造函数吗?