一个model,两个view

jiandingzhe 2012-02-14 12:49:34
这个问题不是java的,但是涉及一些设计模式的问题,有人跟我说这种问题上java区问比较好,所以就仍在这了。

我在做一个小软件,里面涉及到一个模型,还有两个视图:一个是表格,一个是图形显示。这两个视图都有交互性,而且是同步的:当用户选择表格里一行的时候,图形显示里面相应的部分被高亮;当点击图形的时候,表格相应的一行被选择。

下面问题就来了:
假如我这样设置回调来更新它们,就会有严重的问题,因为表格在被更改的时候,会触发一个changed事件,使得changed回调函数又被调用,就绕进去了:


sub on_table_selection_change {
select_data;
}

sub on_graph_clicked {
select_data;
}

sub on_data_selected {
change_table;
change_graph;
}


于是,我只能这样回调。但我不喜欢这样,因为graph把自己的一部分事务塞给了table,相当于紧耦合两个元件:

sub on_table_selection_change {
change_graph;
}

sub on_graph_clicked {
change_table;
}

大家有什么别的策略来组织这些回调吗?
...全文
92 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
greency 2012-02-14
  • 打赏
  • 举报
回复
不会LZ这种写法 ..我觉得 能不能全局bind事件 根据table_id graph_id的不同而做不同的处理.. 总之 绑定!

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧