2009-10-07 37 views
1

我仍然試圖讓我的頭部結構事件流的最佳方式。有人通過告訴我,包含的對象應該從父容器中分離出來,因此它們可以在容器之間重用。他們不是調用父母的功能,而是派遣一個事件。明智的!從另一個對象派發事件有意義嗎?

我最近自己處於一個尷尬的情況,就是從它的父對象派生一個包含對象的事件。一個對象成爲發送其事件的對象似乎更直觀。也許我很接近打破德米特定律?我在做什麼

例子:
child.dispatchEvent(new ChildEvent(ChildEvent.IM_BEING_A_CHILD));

難道我感覺怪怪這裏改正的,或者是一個對象很正常的事情派遣另一個對象的事件?

回答

6

你不一定違反任何規則 - 如果dispatchEvent是一個公共職能,那麼你是允許從你喜歡的任何地方打電話給它。

如果你想從一個角度封裝點讓事情變得更清潔,你可以代替暴露的家長可以撥打特定事件發生明確的功能 - 如:

child.doSomeChildAction(); 

和子類:

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

這樣,如果你需要改變孩子發送事件的方式,發送的是什麼類型的事件,或者當孩子把它全部封裝在子類的事件發生什麼樣的行動,等等將更容易管理。

+1

所以,你似乎在說它*更多是一個對象自己的責任來發送其事件... – Pup 2009-10-08 16:31:03

+0

不一定 - 像我說的,公共職能是公開的 - 更多的是關於代碼管理而不是責任 - 如果對象派遣他們自己的事件,管理下線的更改通常更容易。 – Reuben 2009-10-08 22:00:46

+0

這個答案對您有用嗎?讓我知道如果你需要更多的解釋... – Reuben 2009-10-13 04:38:46

相關問題