2009-04-29 67 views
1

我非常难以弄清楚类需要如何与海誓山盟进行沟通。在当前的一个项目中,许多类已经变得如此深度,以至于我开始让单身和静态字段来解决(从我得到的这是一个糟糕的主意)。帮助我理解当前项目的OOD

它很难表达我的问题,像其他程序员没有这个问题。 这里是节目的一部分的一个图像: Class diagram

  • EX1。当我创建一个目标对象时,它需要来自Infopanel的信息。如何在InfoPanel中创建一个静态获取器?

  • ex2。 DestinationRouting用于每一分支。我真的必须在首发中完成,然后在所有分支中传递它吗?

不知道这是有道理的人:) 它是在每一个项目reacurring问题。

+0

imageshack被许多企业网络阻止,像我的,所以我无法查看图表。你能详细说明一些令你感到困扰的事情吗? – Geoff 2009-04-29 18:09:23

回答

0

这里的信息太少了。例如,我甚至不确定MapPanelInfoPanel是否应该如此。我很想给装饰者模式尝试一下它的价值。我不知道为什么Listener也是一个Panel的孩子。我们需要知道这些对象是什么以及这是什么系统。

+0

这是一个像googlemap一样的MapRouting应用程序。 MainFrame:框架,所以我可以看到我的应用程序。 MapPanel:显示地图的面板。 InfoPanel:面板,用户可以通过文本fx输入目的地。 听众:用于在按下按钮或想放大面板时发生某些事情。基本给予面板功能。 RouteClicking:根据您鼠标的位置创建一个新的目的地,并将其添加到DestinationRouting,以便您可以从A-> B-> C-> D ... WorldRoute:是整个路线。即。 A-> B-> C-> D,而正常路线只是目的地A-> B – 2009-04-29 18:35:10

+0

我认为我正在做的是将每项任务委托给新对象。 如果您需要更多信息,请告诉我。 – 2009-04-29 18:38:31

1

看过你的班级图后,我认为你正在将一个程序性思维应用于OO问题。您的单身人士似乎包含对您的领域模型中的记录进行操作的所有行为,并且记录的行为非常少。

为了更好地理解你的对象模型,我试着将你的类图中的关系(行)分类为“is-a”,“has-a”等等。你可以更好地看到你有什么。

目标需要来自InfoPanel的一些信息,但不可能包含所有信息。是否可以只将所需的信息传递给Destination而不是InfoPanel?

在DestinationRouting类中捕获什么状态会强制它成为单例?这些信息是否属于别处?