2012-02-17 48 views
4

我需要帮助的设计问题之间的联系:Designning相关类

有3类地图,路和市:

1.class地图有-A道路和清单列表城市

2.class道路有2个城市 - d和s。

3.class城市有-A道路

我需要设计添加和从地图移除道路\的功能,同时它需要优雅和安全的名单。

优雅 - 最少的代码和更好的效率

安全 - 所有相关的类变量必须知道除了\去除。

注意:如果你做任何这并不通知其他 类变化的类的方法,它可能会调用和ruine数据库。

的想法,我不得不做的是如下:

有一个方法为每个类:

地图:addRoad(市d,S市),这将创建一个新的路(市d,S市)将其添加到它的列表 和运行applyRoad()

道:applyRoad(),它调用d.addRoad(本)和s.addRoad(本)

市:addRoad(路r)将路到特定城市实例的道路名单

与给任何想知道的问题是,除了道路被正确的用户只要编码器使用Map.addRoad ()以任何其他方式,数据库中将缺少同步。 (一个可以调用road.applyRoad(),然后地图的列表将不会与变化同步)

+0

您遇到什么困难?你有什么尝试?你能提供一些尝试的例子,并解释你在哪里困住他们。 – 2012-02-17 15:00:24

+0

这看起来像一个家庭作业可疑。如果是为了避免过度直接的答案,请标记它。 – dasblinkenlight 2012-02-17 15:01:08

+0

你真正的问题是什么?无法帮助您找到工作的人,但帮助您找到特定问题或问题的答案。 – adranale 2012-02-17 15:10:00

回答

1

调解模式是合适的:

http://en.wikipedia.org/wiki/Mediator_pattern

调解员知道大家。它可以通过耦合解决您的问题。


NB: 看这似乎是一个很好的候选人观察者模式后,这是一个没有去,因为:

  • 好:模块化:主题和观察员可能会有所不同独立
  • 好:可扩展性:可以定义并添加任意数量的观察者
  • 好:可定制:不同观察者提供的不同观点 主题
  • 坏:意想不到的更新:观察者不知道每个 其他
  • 不好:更新开销:可能需要提示

来源:http://en.wikibooks.org/wiki/Java_Programming/Design_Patterns#Observer

+0

你能比较具体的例证吗?你将如何连接这些类,并观察哪些类? – 2012-02-17 21:23:47

+0

@OfekRon我错了我的建议,请检查我的更改:-) – unludo 2012-02-17 22:29:03