我正在寻找一种适当的方式将盛大子项目的属性更改事件传播给其父项。 假设我们有一些树结构,并且当树的某个叶子的某些属性发生变化时,应该通知这棵树的根。 我猜想,其中一种方法是将节点的属性更改侦听器添加到其子节点,然后重新触发事件给前导。 另一种方法是让root用户订阅所有子级的属性更改事件,而不考虑层次结构。 所以问题是如何正确地做到这一点?它有任何模式吗?从盛大(盛大)子项目向父项目传播属性更改事件的正确方法
2
A
回答
0
我认为有一个权衡取决于你修改树的频率与你需要传播一个事件的频率相比。
如果树更改频繁,我会将信息通过树中的直接父级传递回去。所需的唯一设置是每个节点中的父指针。这也很简单。
如果树更改相对不频繁,并且通知过程的性能很重要,那么在根和每个叶之间建立直接监听器关系可能会更好。
2
在我的一个项目中,我们开发了一个框架来做到这一点。最后,我们的决定是明确地订阅嵌套结构的属性,而不是像重新激发事件那样。这会变得非常混乱。
我们的解决方案作为一个基于地图的模型,其中包含一个树状结构。可以在树中的任何地方注册监听者。为了使事情更好使用,我们将其包装在一个代理外壳中,这使得树结构消失在pojos后面(在构建模型时树结构将从其中构建)。
当然,我们寻找的框架可以做我们想做的,但没有。所有现有的框架只处理扁平的pojos。这是很多工作,但现在我们对此非常满意。
相关问题
- 1. SQL:搜索盛大子表specifc项目
- 2. 刷新盛大父
- 3. Reactjs从盛大孩子
- 4. @ViewChild:接入盛大孩子的方法
- 5. jquery伟大的盛大父母
- 6. 如何从一个盛大的父类调用一个方法?
- 7. Windows中的监控进程(儿童,盛大,盛大....)
- 8. 在盛大儿童班致电祖父母方法
- 9. 明确继承遗产清单“盛大父母接口
- 10. 从父项Maven项目访问子项属性
- 11. CMake:如何更改子目录项目目标上的属性?
- 12. 在QML中更改父项属性时的子项属性
- 13. NSURLConnection和盛大的中央调度
- 14. 无法从属性中更改项目目标
- 15. 我该如何调用盛大父类的构造函数?
- 16. 如何查找和应用风格,以盛大的父div?
- 17. 父项目中的属性文件
- 18. 在法拉盛matplotlib
- 19. 正确的方式来分叉GitHub上的项目做出重大更改
- 20. 将错误传播给父母,然后是盛大的父母是好主意吗?
- 21. 更改全景项目的大小
- 22. 更改列表中项目的属性
- 23. WPF Catch ObservableCollection的项目属性更改
- 24. 更改GridView中项目的属性?
- 25. 使用forEach方法更改项目的属性(javascript)
- 26. 盛传力关闭。振动
- 27. 更改新Gerrit项目配置的正确方法是什么?
- 28. 从IDEA中的大项目中提取子项目
- 29. 不显示来自正确父项目的数据的子项
- 30. Listview项目或子项目onchange事件
顺便说一下,我们主要使用该模型来将GUI元素绑定到复杂的pojos上。 – sorencito