我在设计问题上需要帮助:
地图,道路和城市分为3类:
1.class Map HAS-A道路列表和城市列表
2.class Road有2个城市 - d和s。
3.class City HAS-道路清单
我需要设计从地图添加和删除道路的功能,同时它需要优雅和安全。
优雅 - 最少的代码和更高的效率
安全 - 所有相关类变量必须知道添加\删除。
注意:如果您在任何不通知的类上创建方法 其他类的更改,可能会被调用并破坏数据库。
我这样做的想法如下:
为每个类都有一个方法:
地图:addRoad(城市d,城市s)创建一条新道路(城市d,城市s)将其添加到其列表 并运行applyRoad()
道路:applyRoad()调用d.addRoad(this)和s.addRoad(this)
城市:addRoad(Road r)将道路添加到特定城市实例的道路列表
对于谁想知道的问题是,只有当编码器使用Map.addRoad()时才能正确地完成道路的添加,而在任何其他方面,数据库中都会缺少同步。 (可以调用road.applyRoad(),然后Map的列表将不会与更改同步)
答案 0 :(得分:1)
中介模式是恰当的:
http://en.wikipedia.org/wiki/Mediator_pattern
调解员了解每个人。它解决了你的耦合问题。
NB: 在看了一个看起来很好的候选人的观察者模式之后,这是不可取的,因为:
来源:http://en.wikibooks.org/wiki/Java_Programming/Design_Patterns#Observer