从另一个对象发送事件是否有意义?

时间:2009-10-07 04:03:16

标签: actionscript-3 oop events actionscript

我仍然试图了解构建事件流的最佳方法。通过告诉我包含的对象应该从它们的父容器中分离出来以便它们可以在容器之间重复使用,很有意义。他们不是调用父母的功能,而是派遣一个事件。明智!

我最近自己处于一种尴尬的情况,就是从一个包含对象的父对象上调度一个事件。对于一个调度其自己的事件的对象来说似乎更直观。也许我接近违反得墨忒耳法则?

我在做什么的例子:
child.dispatchEvent(new ChildEvent(ChildEvent.IM_BEING_A_CHILD));

我觉得这里感觉很奇怪,或者一个对象派遣另一个对象的事件是正常的吗?

1 个答案:

答案 0 :(得分:6)

您不一定违反任何规则 - 如果dispatchEvent是公共功能,则您允许从您喜欢的任何地方拨打电话。

如果你想从封装的角度来保持清洁,你可以改为暴露一个父代可以调用特定事件的显式函数 - 例如:

child.doSomeChildAction();

并在儿童班上:

public function doSomeChildAction():void
{
   dispatchEvent(new ChildEvent(ChildEvent.IM_BEING_A_CHILD));
}

这样,如果你需要改变孩子发送事件的方式,发送什么样的事件,或者当孩子发送事件时发生了什么动作,它都被封装在子类中,因此更容易管理