首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设计关联类之间的连接

设计关联类之间的连接
EN

Stack Overflow用户
提问于 2012-02-17 14:54:21
回答 1查看 104关注 0票数 4

在设计问题上我需要帮助:

有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的列表将不与更改同步)

EN

回答 1

Stack Overflow用户

发布于 2012-02-17 19:16:45

调解人的模式是适当的:

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

调解人知道每个人的事。它通过耦合解决了你的问题。

注:在看了观察者的模式,这似乎是一个很好的候选人,这是一个不去,因为:

independently

  • good:可扩展性:可以定义和添加任意数量的观察者(

  • good):可自定义性:不同的观察者提供了不同的主题

  • 坏视图:意外更新:观察者不知道对方的情况,

  • 错误:更新开销:可能需要提示

<代码>F 212

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9330369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档