Jaka jest duża różnica między obserwatorami a callbackami? Kiedy i gdzie użyć?Jaka jest duża różnica między obserwatorami a callbackami?
Odpowiedz
Chodzi o oddzielenie obaw.
Obserwatorzy umożliwiają korygowanie kodu, który w rzeczywistości nie należy do modeli. Na przykład model User
może mieć wywołanie zwrotne, które wysyła wiadomość e-mail potwierdzającą rejestrację po zapisie użytkownika, ale tak naprawdę nie chcesz tego kodu w modelu, ponieważ nie jest on bezpośrednio związany z celem modelu.
Obserwatorzy umożliwiają posiadanie tego czystego rozdziału, ponieważ nie masz całego tego kodu zwrotnego w swoich modelach. Obserwatorzy zależą od modelu (lub modeli), a nie odwrotnie.
Dla mnie to samo. Ale wolę oddzwanianie zamiast obserwatora.
Obserwator to oddzwanianie, ale w osobnym modelu.
Oddzwonienie jest w modelu. Więc widzisz, że jest callback i możesz go zhakować.
Myślę, że chodzi o to, aby Twoje modele były względnie szczupłe. Kiedy więc zauważysz, że twój model robi się absurdalnie długotrwały, być może nadszedł czas, aby go przekonać do korzystania z obserwatora.
Od surowego architektonicznego POW (jak zauważono w odpowiedzi Johna) jest to około separation of responsibilities, ale jeśli to prosta rzecz, wolę ją włożyć do modelu.
Technicznie praktycznie nie ma różnicy.
- 1. Jaka jest różnica między cat_id a term_id?
- 2. Jaka jest różnica między IEnumerable a tablicami?
- 3. Jaka jest różnica między == a === w Verilog?
- 4. Jaka jest różnica między UseCase a Workflow?
- 5. Jaka jest różnica między pakietem a intencją?
- 6. Jaka jest różnica między węzłem a wierzchołkiem?
- 7. Jaka jest różnica między Ember.computed.alias a Ember.binding?
- 8. Jaka jest różnica między alertem a window.alert?
- 9. Jaka jest różnica między @android a android:
- 10. Jaka jest różnica między krotką a kompresją?
- 11. Jaka jest różnica między proxy a reify?
- 12. Jaka jest różnica między @Inject a @PersistenceContext?
- 13. Jaka jest różnica między sqlite3 a pdo_sqlite
- 14. Jaka jest różnica między Const a Constant?
- 15. Jaka jest różnica między Socket.IO a Firebase?
- 16. Jaka jest różnica między macierzą a tablix?
- 17. Jaka jest różnica między KERN_INVALID_ADDRESS a KERN_PROTECTION_FAILURE?
- 18. Jaka jest różnica między Float.POSITIVE_INFINITY a Float.MAX_VALUE?
- 19. Jaka jest różnica między SGML a XML?
- 20. Jaka jest różnica między Cake a Leiningen?
- 21. Jaka jest różnica między JavaBean a POJO?
- 22. Jaka jest różnica między kopiowaniem a klonowaniem?
- 23. Jaka jest różnica między HAVING a WHERE?
- 24. Jaka jest różnica między ItemTemplate a ItemPanelTemplate?
- 25. Jaka jest różnica między słownikiem a tablicą?
- 26. Jaka jest różnica między cancelBubble a stopPropagation?
- 27. Jaka jest różnica między NSString a NSMutableString?
- 28. Jaka jest różnica między StudlyCaps a CamelCase?
- 29. Jaka jest różnica między IPV6_ADD_MEMBERSHIP a IPV6_JOIN_GROUP?
- 30. Jaka jest różnica między spark.sql.shuffle.partitions a spark.default.parallelism?