Я хочу создать приложение, в котором у меня есть эти два класса, MainApp и Model (на самом деле больше, но это основа и суть проблемы). MainApp также является начальным классом. Я хочу применить инверсию зависимостей, чтобы mainApp не приходилось перестраивать каждый раз при изменении модели (ну, главным образом потому, что это хорошая практика). Я не могу сделать это:
MainApp - - - > IModel
^
|
|
Model
потому что в любом случае мне пришлось бы создавать Model в MainApp, потому что это начало моего приложения, это было бы излишним.
Я думал о переносе содержимого MainApp в другой класс и использовании MainApp как фабрика для MainAppContents и Model, например:
MainApp -------------> Model
| |
| |
v v
MainAppContents - - - > IModel
Это правильный подход и означает ли это, что любой запуск хорошо разработанного приложения - это фабрика?