Eseménykezelés

Sziasztok!

Az eseménykezeléssel kapcsolatosan szeretnék segítséget kérni tőletek.

Adott egy User controller, ebben van egy actionAdd illetve actionMod nevű függvény, actionAdd mikor meghívódik, akkor afterSave-re szeretném hogy egy bizonyos dolog történjen, viszont ha az actionMod hívódik meg, akkor szintén szeretném, hogy afterSave-re történjen valami, de nem az mint ami az actionAdd-nél.

Hogy érdemes ezt megvalósítani?

  1. A modell osztályban, az afterSave-nél megnézni hogy mi az adott model scenario-ja és az alapján eldönteni hogy mi történjen?

  2. A User controller osztályban, az adott action-höz felvenni az attachEventHandler függvénnyel eseményeket?

Van valami más ötlet amivel szépen kivitelezni lehet az egészet?

Sajnos nekem az első kettőn kívül nem jutott eszembe más, de nem vagyok biztos benne, hogy ezek a legjobb megoldások.

Egy nagyobb rendszerről van szó, tehát több eseménykezelő is tartozhat egy controller-hez, csak az egyszerűség kedvéért írtam a példát, hogy szemléltessem a problémát.

Előre is köszönöm a segítséget!

Attól függ, hogy az a "bizonyos dolog", aminek meg kell történnie, a controller actionhoz vagy a model scenariohoz kötődik-e szorosabban. (A kettő nem ugyanaz. Ha nem sima CRUD-ról van szó, hanem kicsit bonyolultabb logikáról, akkor több controller action is update-elheti ugyanazt a modelt, illetve egy action több modelt is létrehozhat vagy frissíthet.) Ha a controller actionhoz kötődik az extra kód végrehajtása, akkor viszont fölösleges eventhandlerekkel bajlódni, sikeres mentés után egyszerűen a controllerből indítsd el szükséges műveletet.

Köszönöm szépen a segítséget!