Здравствуйте. В целях обучения пытаюсь написать небольшое spa приложение на чистом js. Много времени потратил и трачу на разработку архитектуры. Пробовал реализовать идеи уже существующих библиотек (i-bem.js, react), но что-то все не получалось. В последние недели-две игрался с mobx, в процессе намного лучше стал понимать события, обсервер и медиатор паттерны. И я подумал "Вот же оно! У меня будет медиатор App.js и через него будут общаться все модули". Я переписал все приложение и вроде все неплохо, но пришла другая мысль, собственно, о которой хотелось бы узнать ваше мнение. Что если использовать объект window как медиатор? Как раз есть встроенные методы и кастомные события для этого. Например, в одном модуле сообщаем о событии button.dispatchEvent(event), а в другом подписываемся на него с помощью window.addEventListener(event). Мы ведь любую мелкую интерактивность на странице реализуем таким же образом, подписываясь на браузерные события. Почему бы это не сделать при создании полноценного spa?