事件冒泡模式适用于分层模型吗?

发布于 2024-09-26 09:33:28 字数 342 浏览 4 评论 0原文

让我们考虑下面的示例,我有“Document”对象,其中包含“Person”对象的集合,每个“Person”对象都有“Address”对象的集合。当“地址”对象之一发生更改时,我需要调用服务器端方法来计算一个人的所有地址之间的最佳路径(其“地址”已更改)并更新用户界面。我需要知道其中一个地址已更改以及地址已更改的人。 到目前为止,我唯一的解决方案是实现某种事件冒泡。当“地址”对象更改时,它会通知父级(“人员”对象)有关更改的信息,“人员”通知“文档”。现在我们可以向“Document”类添加侦听器并执行所需的操作。这种方法的缺点 - 我必须管理层次结构中所有对象的“父”链接。有人可以评论这个解决方案吗?好吗?或者也许我在这里做错了什么?

谢谢。

Lets consider following example, I have "Document" object which contains collection of "Person" objects and each "Person" object has collection of "Address" objects. When one of the "Address" object changes I need to call server-side method to calculate optimal path between all addresses of a person(whose "Address" was changed) and update user interface. I need to know that one of addresses was changed and person whose address was changed.
The only solution I have so far is to implement some sort of event bubbling. When "Address" object changes it notifies parent("Person" object) about the change, "Person" notifies "Document". Now we can add listener to "Document" class and make required actions. Downside of this approach - I have to manage "parent" links for all the objects in the hierarchy. Can somebody comment on this solution? is it good? Or maybe I am doing something wrong here?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心作怪 2024-10-03 09:33:28

您可以使用“父”字段管理自己的层次结构,也可以使父对象侦听其子对象并重新分派事件。这可能主要通过一些共享的帮助程序代码来管理。

You can manage your own hierarchy using "parent" fields, or you can make the parent object listen to its children and re-dispatch events. This could probably be managed mostly via some shared helper code.

淡忘如思 2024-10-03 09:33:28

你走在正确的轨道上。

创建事件时,只需将 bubbles 属性设置为 true 即可。

http://www.igorcosta.com/flex3/doc/flash /events/Event.html#bubbles

您必须在 ActionScript 中的文档类上添加事件侦听器 [除非您在 Document 类上定义事件元数据],但它应该可以正常工作并且不会出现问题。

如果没有令人信服的理由让您“捕获/重新调度”,我就不会费心重新创建轮子。

You are on the right track.

When you create the event, just set the bubbles property to true.

http://www.igorcosta.com/flex3/doc/flash/events/Event.html#bubbles

You'll have to add your event listener on the document class in ActionScript [unless you define the event metadata on the Document class], but it should work and bubble w/o problems.

If there is no compelling reason for you to "Catch / re-dispatch" I wouldn't bother to re-create the wheel.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文