В настоящее время я сталкиваюсь с головоломкой: Каков правильный способ соединения двух объектов javascript?Каков правильный способ соединения двух объектов 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-y. Что делать?
Может быть, я что-то отсутствует, но вы можете не достичь проверяемость, только убедившись, что вы используете агрегацию вместо композиции? –
Это идея. Но действительно ли вопрос заключается в том, как правильно подключить эту агрегацию объектов? –