Class 帮助我了解当前项目的OOD

Class 帮助我了解当前项目的OOD,class,oop,Class,Oop,我很难弄清楚班级之间需要如何交流。在我目前正在做的一个项目中,许多类已经变得根深蒂固,以至于我已经开始使用单例和静态字段(据我所知,这是一个坏主意) 很难表达我的问题,就像其他程序员没有这个问题一样。 以下是程序的一部分的图像: 例1。当我创建目标对象时,它需要来自Infopanel的信息。如何在不使用InfoPanel中的静态getter的情况下做到这一点 例2。DestinationRouting用于每个分支。我真的必须先把它放在起动器里,然后再把它传给所有的分支吗 不确定这是否对任何

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

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

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

  • 例2。DestinationRouting用于每个分支。我真的必须先把它放在起动器里,然后再把它传给所有的分支吗

不确定这是否对任何人都有意义:)
这是每个项目都会遇到的问题。

这里的信息太少了。例如,我甚至不确定
MapPanel
InfoPanel
是否应该是这样。我很想尝试一下装饰图案的价值。我也不知道为什么一个听众是一个小组的孩子。我们需要知道这些对象是什么,这是什么系统。

这里的信息太少了。例如,我甚至不确定
MapPanel
InfoPanel
是否应该是这样。我很想尝试一下装饰图案的价值。我也不知道为什么一个听众是一个小组的孩子。我们需要知道这些对象是什么以及这是什么系统。

在查看类图之后,我认为您正在将过程思维模式应用于OO问题。您的单例似乎包含对域模型中的记录进行操作的所有行为,并且这些记录几乎没有任何行为

为了更好地理解您的对象模型,我将尝试将类图中的关系(线)分类为“is-a”、“has-a”等,以便您能够更好地看到您所拥有的

目的地需要InfoPanel提供的一些信息,但可能不需要所有信息。是否可以只将所需信息传递到目标而不是InfoPanel


DestinationRouting类中捕获的是什么状态,强制它成为单例?这些信息属于其他地方吗?

在查看类图之后,我认为您正在对OO问题应用过程思维。您的单例似乎包含对域模型中的记录进行操作的所有行为,并且这些记录几乎没有任何行为

为了更好地理解您的对象模型,我将尝试将类图中的关系(线)分类为“is-a”、“has-a”等,以便您能够更好地看到您所拥有的

目的地需要InfoPanel提供的一些信息,但可能不需要所有信息。是否可以只将所需信息传递到目标而不是InfoPanel


DestinationRouting类中捕获的是什么状态,强制它成为单例?这些信息属于其他地方吗?

imageshack被很多公司网络屏蔽,比如我的网络,所以我无法查看图表。你能更详细地说明什么让你不安吗?imageshack被很多公司网络屏蔽了,比如我的网络,所以我无法查看图表。你能详细说明一下是什么困扰着你吗?这是一个类似谷歌地图的地图路由应用程序。大型机:框架,以便我可以看到我的应用程序。MapPanel:显示地图的面板。InfoPanel:面板,用户可以通过文本fx输入目的地。监听器:当我按下按钮或想放大面板时,会发生一些事情。基本上提供了面板的功能。RouteClicking:根据鼠标所在位置创建一个新的目的地,并将其添加到DestinationRouting,以便您可以从a->B->C->D。。。世界路线:是整个路线。例如,A->B->C->D,而正常路线只是目的地A->B我认为我正在做的是将每个任务委派给新的对象。如果您需要更多信息,请告诉我:)从高层来看,您是MVC的候选人。听起来不错。遗憾的是,我没有得到这样的模式:<我之前创建的线程:这是一个像谷歌地图一样的地图路由应用程序。大型机:框架,以便我可以看到我的应用程序。MapPanel:显示地图的面板。InfoPanel:面板,用户可以通过文本fx输入目的地。监听器:当我按下按钮或想放大面板时,会发生一些事情。基本上提供了面板的功能。RouteClicking:根据鼠标所在位置创建一个新的目的地,并将其添加到DestinationRouting,以便您可以从a->B->C->D。。。世界路线:是整个路线。例如,A->B->C->D,而正常路线只是目的地A->B我认为我正在做的是将每个任务委派给新的对象。如果您需要更多信息,请告诉我:)从高层来看,您是MVC的候选人。听起来不错。可悲的是,我不明白这种模式:<我之前创建的线程:没有has-a或is-a关系。这更像是我将作业委托给新对象。是的,我只需要InfoPanel中的一个字段来创建目标对象。通过创建目的地时获取该字段。地图面板就是问题所在。DestinationRouting只是在添加或删除目的地时跟踪每个目的地。我把它做成了单件的,这样我就可以很容易地访问它。这里没有has-a或is-a关系。这更像是我将作业委托给新对象。是的,我只需要InfoPanel中的一个字段来创建目标对象。通过创建目的地时获取该字段。地图面板就是问题所在。DestinationRouting只是在添加或删除目的地时跟踪每个目的地。我把它做成了单件的,这样我就可以很容易地访问它了。