Java:从远处的对象访问方法的最佳方式

Tob*_*ter 5 java project-organization

我目前正在开发我的第一个更大的java项目(一个游戏),我只有一些组织问题,只有几个(~40个)类.
我正在组织我的游戏:

项目组织模型

这对我来说似乎非常有条理,因为每个小班级都被归类为更大的班级.显然,类ObjectHandler或者类Model将包含更多类,否则它们将毫无用处.

现在,我的问题是:当我试图访问当前PlayerSettingsDynamicObjectsGUI(例如,当我试图让以画在画布上的玩家的位置),我不得不创建一个像这样的长路:

int x = gui.engine.model.objHandler.player.playerSettings.getX();
Run Code Online (Sandbox Code Playgroud)

(为此我设置了大多数参数public.我也可以使用get()-methods 访问它们,但这对我来说似乎更无组织)

我的问题是 - 这看起来是正常的还是有更好的方法来解决这个组织问题?

tmn*_*tmn 0

清理此类依赖混乱的快速方法是使用 Google Guava 的 EventBus。您可以使用它来发布事件,然后任何订阅这些事件的内容都会对它们起作用,所有这些都不需要任何组件相互了解或事件来自哪里。这是一种有效解耦和有效管理依赖关系的快速方法。

如果您想要更优雅的东西,请查看响应式编程并探索 RxJava。