我们目前正在构建一个应用程序,以不同的方式同时显示数千个实体 - 例如在地理地图视图或数据网格中。
这些实体按层次结构组织,因此有各种有意义的实体子组。
此外,地图视图允许您使用lasoo类型工具进行任意选择。
我们需要的是同步所有视图,以便您在一个视图中选择的内容会反映在其他视图中。
这些视图组件中的每一个都不了解彼此。
我正在寻找设计模式和/或开源应用程序,以展示复杂多视图应用程序中项目选择的方法。
答案 0 :(得分:1)
我会使用event-listener pattern(如果你愿意,可以发布/订阅)
您可以在模型中或视图可以访问的任何其他位置创建类SelectionManager。
所有视图都订阅选择以获取selectionChanged(SelectionEvent e)事件。 活动视图(与之交互的用户)将向SelectionManager报告(发布)此事件,从而触发selectionChanged(SelectionEvent e)。
当视图获得此事件,并且视图不是此事件的源(创建者/发布者)时 - 更新其选择。