как правильно построить коммуникацию между классами?
я хочу разобраться в следующем, какой подход верный, если он тут есть -
1 - я создаю 1 файл под 1 класс и импортирую его по дефолту, и выстраиваю следующие связи -
допустим есть много классов и 1 класс который стартует всю программу и абсолютно все происходит
внутри него. он создает инстансы остальных классов, пробрасывая созданный экземпляр от одного класса,
в параметры другого класса. и получается так что я стартую программу
1 строчкой вида -
const app = new AppStarter ();
app.start();
как бы все получается изолированным.
2 - создать отдельный файл, в котором явно будут в процедурном стиле вызваны создания экземпляров классов и построена коммуникация между ними, кто что кому прокидывает и тд. то есть вообще не создавать подобный
класс class AppStarter {...};
и если я делаю так, то всё что описано в пункте 2 я должен писать в файле index.js?
3 - хочу понять вообще нужен ли такой файл как в пункте 2. некий базовый поток, в котором можно явно проследить цепь вызовов всей инфраструктуры внутри программы (и нормально ли, что в таком файле будет огромное количество импортов собственно классов и прочего common стаффа, или в таком случае надо сделать 1 отдельный файл с импортами и подключить его) или спрятать эту логику в самих классах или 1 классе который контролирует все это или попробовать создать золотую середину.
4 - как делать все это правильно?
есть ли среди того что я перечислил адекватный подход? как лучше организовать всё это, и какие ресурсы по теме тут помогут? можете ли вы посоветовать какие либо open source проекты, на основе которых можно подробно изучить эту тему.