在设计问题上我需要帮助:
有3类地图、道路和城市:
1.等级地图--道路清单和城市清单
2.班道有两个城市-d和s。
3.“等级城市”--道路清单
我需要设计从地图中添加和移除一条到\的道路的功能,同时它需要优雅和安全。
代码最少,效率更高。
安全-所有相关的类变量都必须知道添加\删除。
注意:如果您在没有通知其他类更改的任何类上创建一个方法,它可能会被调用并破坏数据库。
我想这样做的想法如下:
对每个类都有一个方法:
地图:addRoad(城市d,城市s),它创建了一条新的道路(城市d,城市s),将它添加到它的列表中并运行applyRoad()
路: applyRoad(),它调用d.addRoad(this)和s.addRoad(this)
城市:addRoad(公路r)将道路添加到特定城市实例的道路列表中
但问题是,只有当编码器使用Map.addRoad()时,才能正确地添加道路,而在任何其他方面,数据库中都没有同步化。(您可以调用road.applyRoad(),然后Map的列表将不与更改同步)
发布于 2012-02-17 19:16:45
调解人的模式是适当的:
http://en.wikipedia.org/wiki/Mediator_pattern
调解人知道每个人的事。它通过耦合解决了你的问题。
注:在看了观察者的模式,这似乎是一个很好的候选人,这是一个不去,因为:
independently
<代码>F 212
来源:http://en.wikibooks.org/wiki/Java_Programming/Design_Patterns#Observer
https://stackoverflow.com/questions/9330369
复制相似问题