我很难弄清楚班级之间需要如何沟通。在我当前正在做的一个项目中,许多类已经变得如此根深蒂固,以至于我开始制作单例和静态字段来解决(据我所知,这是一个坏主意)。

很难表达我的问题,就像其他程序员没有这个问题一样。这是该程序的一部分的图像:类图

  • 例1。当我创建 Destination 对象时,它需要来自 Infopanel 的信息。如何在 InfoPanel 中不创建静态 getter 的情况下做到这一点?

  • 例2。每个分支都使用 DestinationRouting。我真的必须在启动器中创建它,然后将其传递到所有分支吗?

不知道这是否对任何人都有意义:) 这个问题在每个项目中都会反复出现。

有帮助吗?

解决方案

这里的信息太少了。例如,我什至不确定是否 MapPanelInfoPanel 他们应该是这样的。我很想尝试一下装饰器模式,看看它的价值。我也不知道为什么侦听器是面板的子项。我们需要知道这些对象是什么以及这是什么系统。

其他提示

查看您的类图后,我认为您正在将程序思维方式应用于面向对象问题。您的单例似乎包含对域模型中的记录进行操作的所有行为,并且记录的行为很少。

为了更好地理解您的对象模型,我尝试将类图中的关系(线)分类为“is-a”、“has-a”等之一。以便您可以更好地查看自己拥有的内容。

目的地需要来自 InfoPanel 的一些信息,但不可能是所有信息。是否可以仅将所需的信息传递到 Destination 而不是 InfoPanel?

DestinationRouting 类中捕获的什么状态迫使其成为单例?该信息属于其他地方吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top