Thanks for sharing.
M-am uitat peste video de curiozitate... Not really impressed sincer si nici nu mi se pare o modalitate ok de comunicare. Nu vad de ce ar fi mai ok decat evenimentele custom sau orice alta implementare custom ( proprie ) pentru a comunica cu diferite obiecte. Intr-adevar, nu exinte clasa ta EventDispatcher, dar folosesti totusi un object Signal care cine mai stie ce implementeaza... deci nu castigi absolut nimica la faza asta.
Treaba cu "add", "remove" mi se pare destul de aiurea... Sigur sunt o gramada de oameni ( daca nu sunt deja, atunci sigur o sa fie ) care vad chestie asta ca fiind mai ok decat definirea de evenimente custom, dar sincer, din ce am vazut in video, nu e nici pe jumate la fel de ok.
Referitor la evenimente custom... Daca pur si simplu vrei un tip nou, nu trebuie sa faci nicio clasa noua de "eveniment custom"... vad multi oameni care traiesc cu conceptia asta ( gresita ). Daca pur si simplu vrei un evenimet de tipul "VasileSare", atunci faci un dispatch la un Event si pur si simplu ii schimbi tipul... exemplu:
- Cod: Selectaţi tot
dispatchEvent(new Event("VasileSare"));
Nu-ti trebuie nicio clasa noua si nimica. Clasa noua pentru evenimente faci doar atunci cand vrei sa pasezi si ceva valori impreuna cu evenimentul tau. Nu am vazut un exemplu pe treaba asta in video-ul cu Signal ( e adv. ca nici nu am avut rabdare s-o vad pana la final ), dar oricum, mi se pare chiar mai incurcata treaba cu Signal decat cu Event-uri... Macar la Event-uri, cat de cat, stie omul la ce sa se astepte... dar la o clasa de genul Signal, nu stii cum functioneaza si ce limitari are ( asta in caz de nu e open-source si chiar poti sa vezi... ).
Oricum, sa spunem ca poate transmite si valori aditionale... nici atunci nu as vrea "sa ma leg" de o librarie de genu, care azi poate e, maine nu mai e... si daca maine nu mai e dar tu inca ai un proiect de facut / terminat, atunci sa vezi show... te obisnuiesti cu ceva total aiurea...
Te sfatuiesc ( and everyone else too ) sa studiezi mai bine clasa Event si sa intelegi cum functioneaza. Librariile de genul Signal chiar nu te ajuta cu absolut nimica ( desi, poate, momentan asta-i iluzia in care traiesti )... chiar dimpotriva, mai mult strica deoarece in loc sa "muncesti o problema", te pui sa folosesti librarii SF care poate functioneaza, poate nu ( si cine stie cum functioneaza )... Poate-s eu "o specie mai aparte" si-mi place sa si inteleg ce fac si mai ales sa inteleg cum functioneaza tool-ul / framework-ul cu care lucrez... nu ma omor dupa axiome si lucruri "out of the box" pe care sa le folosesc luni / ani dar fara sa am habar despre mecanismele care au loc chiar si la simplu yourVar.toString() ...
Just my 2 cents...
Thanks again for sharing, but I'd suggest that you try to get things done "the right way".
PS: Daca nu-ti plac evenimentele, citeste despre Observer Pattern, Command Pattern, Chain of responsibility Pattern s.a.m.d. Implementeaza propriul tau sistem / mecanism de notificare si gata...