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

Pup*_*Pup 1 oop events actionscript actionscript-3

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

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

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

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

Reu*_*ben 6

你不一定违反任何规则 - 如果dispatchEvent是公共功能,那么你可以从任何你喜欢的地方调用它.

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

child.doSomeChildAction();
Run Code Online (Sandbox Code Playgroud)

在孩子班上:

public function doSomeChildAction():void
{
   dispatchEvent(new ChildEvent(ChildEvent.IM_BEING_A_CHILD));
}
Run Code Online (Sandbox Code Playgroud)

这样,如果您需要更改子项发送事件的方式,发送什么类型的事件,或者在子项发送事件时发生的操作,它都将封装在子类中,因此更易于管理.