Mam obecnie do czynienia z zagadką: Jaki jest właściwy sposób połączenia ze sobą 2 obiektów javascript?Jaki jest właściwy sposób łączenia ze sobą 2 obiektów javascript?
Wyobraź sobie aplikację, taką jak edytor tekstu z kilkoma różnymi plikami. Mam trochę strony HTML reprezentującej widok dla notebooka. Mam plik notes.js zawierający definicje klas dla produktu NotebookController i widoku notatnika.
Obiekt NotebookControler odpowiedzialny za prowadzenie logiki biznesowej na notebooku w stylu "Zapisz notatnik", "Załaduj notatnik", "Nowy notatnik". NotebookView jest odpowiedzialny za zarządzanie HTML, który jest używany do prezentacji. Robi rzeczy niskiego poziomu, takie jak "pobierz/ustaw notatniki" "pobierz/ustaw nazwę notatnika". Wysłuchuje również zdarzeń DOM (onClick) i uruchamia zdarzenia biznesowe (saveNotebook). To jest moja próba wzoru pasywnego widoku.
Chcę, aby mój kod po stronie klienta javascript był zorientowany obiektowo, osobno i testowany. Chcę przetestować program NotebookController za pomocą pozorowanego programu NotebookView i na odwrót. Oznacza to, że nie mogę po prostu utworzyć instancji notatnikaView wewnątrz kontrolera NotebookController. Więc mam
- Włóż logikę w moich notebook.js że przewody od 2 razem
- mieć globalną funkcję w mojej aplikacji, który wie do wystąpienia jednej z nich i podłączyć je razem
- użycie Dependency Injection, albo w domu lub coś w rodzaju SquirrelIoc
W języku Java wybór jest naturalny: użyj Spring. Ale to nie wygląda na JavaScript-y. Co należy zrobić?
Może ja czegoś brakuje, ale nie mogą osiągnąć testowalności po prostu upewniając używasz agregację zamiast składu? –
To jest pomysł. Ale pytanie brzmi, jaki jest właściwy sposób na połączenie tej agregacji obiektów? –