Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 从另一个对象分派事件有意义吗?_Actionscript 3_Oop_Events_Actionscript - Fatal编程技术网

Actionscript 3 从另一个对象分派事件有意义吗?

Actionscript 3 从另一个对象分派事件有意义吗?,actionscript-3,oop,events,actionscript,Actionscript 3,Oop,Events,Actionscript,我仍在试图找到构建事件流的最佳方法。有人告诉我,所包含的对象应该与其父容器解耦,这样它们就可以在容器之间重用,这很有道理。它们不调用其父函数,而是分派事件。明智 最近,我自己陷入了一种尴尬的境地:从一个包含的对象的父对象发送一个事件。一个对象发送自己的事件似乎更直观。也许我快要触犯德米特的法律了 我正在做的示例: child.dispatchEvent(新的ChildEvent(ChildEvent.IM_BEING_A_child)) 我在这里感到奇怪是对的,还是一个对象分派另一个对象的事件是

我仍在试图找到构建事件流的最佳方法。有人告诉我,所包含的对象应该与其父容器解耦,这样它们就可以在容器之间重用,这很有道理。它们不调用其父函数,而是分派事件。明智

最近,我自己陷入了一种尴尬的境地:从一个包含的对象的父对象发送一个事件。一个对象发送自己的事件似乎更直观。也许我快要触犯德米特的法律了

我正在做的示例:
child.dispatchEvent(新的ChildEvent(ChildEvent.IM_BEING_A_child))


我在这里感到奇怪是对的,还是一个对象分派另一个对象的事件是正常的事情?

您不一定违反了这里的任何规则-如果
dispatchEvent
是一个公共函数,那么您可以从任何您喜欢的地方调用它

如果您想从封装的角度让事情更干净,您可以公开一个显式函数,父级可以调用该函数来发生特定事件-例如:

child.doSomeChildAction();
关于儿童课:

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

这样,如果您需要更改子级发送事件的方式、发送的事件类型或子级发送事件时发生的操作,那么所有这些都封装在子类中,这样会更容易管理。

您不一定违反了这里的任何规则-如果
dispatchEvent
是一个公共函数,那么您可以在任何地方调用它

如果您想从封装的角度让事情更干净,您可以公开一个显式函数,父级可以调用该函数来发生特定事件-例如:

child.doSomeChildAction();
关于儿童课:

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

这样,如果您需要更改子级发送事件的方式、发送的事件类型或子级发送事件时发生的操作,那么所有这些都将封装在子类中,因此更易于管理。

so,你似乎在说,分派事件更多的是对象自己的责任…不一定-就像我说的,公共函数是公共的-与其说是责任,不如说是代码管理-如果对象分派自己的事件,通常更容易管理后续更改。从面向对象的角度来看,调度自己的事件应该是自己的责任。这里给出的代码是一个很好的例子。但他是对的,如果这是一种公开的调用方法,从技术上讲,这并不是错误的。有一些框架利用了这种能力。我相信我理解,但我不太关心技术的正确性,我仍然希望得到保证,一个对象发送另一个对象的事件更容易混淆,更不清晰,更不传统。如果你这样说,那么是的,正如Ryan所说,从OO的角度来看,对象应该分派自己的事件,否则你就破坏了封装——让对象分派彼此的事件可能会更加混乱,这取决于上下文。因此,你似乎在说分派其事件更多的是对象自己的责任……不一定——就像我说的,公共函数是公共的——与其说是责任,不如说是代码管理——如果对象分派自己的事件,通常更容易管理后续的更改。从OO的角度来看,分派自己的事件应该是对象自己的责任。这里给出的代码是一个很好的例子。但他是对的,如果这是一种公开的调用方法,从技术上讲,这并不是错误的。有一些框架利用了这种能力。我相信我理解,但我不太关心技术的正确性,我仍然希望得到保证,一个对象发送另一个对象的事件更容易混淆,更不清晰,更不传统。如果你这样说,那么是的,正如Ryan所说,从OO的角度来看,对象应该调度它们自己的事件,否则就会破坏封装——让对象调度彼此的事件可能会更加混乱,这取决于上下文。