В настоящее время я сталкиваюсь с загадкой: как правильно соединить 2 объекта javascript?
Представьте себе приложение, похожее на текстовый редактор с несколькими различными файлами. У меня есть HTML-страница, которая представляет представление для ноутбука. У меня есть файл notebook.js, который содержит определения классов для NotebookController и Notebook View.
Объект NotebookControler, отвечающий за выполнение бизнес-логики в блокноте, например «Сохранить блокнот», «Загрузить блокнот», «Новый блокнот». NotebookView отвечает за управление HTML, который используется для презентации. Он выполняет низкоуровневые вещи, такие как «получить / установить блокнот» «получить / установить имя блокнота». Он также прослушивает события DOM (onClick) и запускает бизнес-события (saveNotebook). Это моя попытка пассивного просмотра.
Я хочу, чтобы мой клиентский код javascript был объектно-ориентированным, разделенным на части и проверяемым модулем. Я хочу протестировать NotebookController с макетом NotebookView и наоборот. Это означает, что я не могу просто создать экземпляр NotebookView внутри NotebookController. Я тоже
- Поместите некоторую логику в мой notebook.js, которая соединяет 2 вместе
- В моем приложении есть глобальная функция, которая знает, как создать экземпляр каждого из них и связать их вместе
- Используйте Dependency Injection, доморощенную или что-то вроде SquirrelIoc
В Java выбор естественен: используйте Spring. Но это не очень похоже на JavaScript. Что нужно сделать?