2009-09-15 58 views
1

注意:我不是在談論事件處理程序的名稱。我正在談論事件本身的名稱。命名事件:描述剛剛發生的事情或描述即將發生的事情?爲什麼?

我傾向於命名事件,以便它們描述事件發生之前發生的事情。形容詞往往支配這個慣例(點擊,保存,更改,加載等)。

一些有能力的同行最近向我提出了命名事件的想法,以描述即將發生的事件(以響應事件)。動詞往往在這裏占主導地位(SAVE_DATA,GET_MEMBER,LOAD_RESULTS,SHOW_REPORT - 再次,這些是事件的名稱,而不是從它們調用的處理程序或方法)。

當你負責事件和處理程序時,我已經決定後者工作得很好,尤其是當你只有一次迴應你想要的事件時。相反,如果您無法查看或控制該事件,則無法將該事件命名爲與將跟隨的動詞(處理程序)匹配。

你如何命名事件,爲什麼?一個公約是否足夠(至少在某個商店中),還是根據代碼/項目的規模和範圍而更改?

回答

4

事件發生前的「保存」被觸發,事件發生後「保存」。

+0

我發現這可以提高理解,但我也認爲這對於給定項目中的統一是必要的。如果項目名稱不好,可以重構它們或者隨它一起滾動,並保持可憐的命名方案。不要在中間改變。 – 2009-09-15 18:28:08

+0

或者使用Pre ... And Post ... Scheme,但是正如Thomas所說的那樣。 – epitka 2009-09-15 19:29:44

1

我覺得有相互作用這裏兩件事情:

  1. 事件 - 發生了什麼事
  2. 行動 - 你要什麼樣的,你將如何做

命名事件反應是一個壞想法。通過發生的事情命名事件。否則會混淆人。如果將來的反應發生變化,而且事件的名稱保持不變,則會給開發人員帶來困擾。

例子:

  1. 事件:點擊(ED)
  2. 操作:LoadProducts

如果你命名事件 「ToLoadProducts」,然後改變你的行動, 「DisplayFilterForm」 和忘記更新事件,它會看起來像:

  1. 事件:ToLoadProducts
  2. 操作:DisplayFilterForm

很顯然,這看起來奇怪的和凌亂,彷彿有人在下降中途的工作。

1

我的名字我在你描述的第一種方式的事件。這是因爲我希望我的處理程序決定如何處理該事件。