Пройди этот этап дальше.Если я правильно вас понимаю, у нас есть:
Application Starts
User specifies some database settings
Repository initialises, passwords etc are checked
Application now uses repository
Моя непосредственная мысль, хммм, интересно, можем ли мы также получить
User decides "I don't like that repository"
User specified new database settings
New repository is initialised
Application closes previous repository, and starts working with new one.
Теперь может оказаться, что это немного более гибко, чемвы запланировали, но это приводит меня к выводу, что у вас фактически есть два приложения с временными отношениями между ними.Есть «оболочка», которая не зависит от хранилища, это та часть, которая запускается без хранилища.Тогда есть дополнительный кусок, который работает только тогда, когда у него есть репозиторий, и я думаю, что он кажется подключаемым, по крайней мере, в концепции.
Следовательно, я не думаю, что ваша оболочка так сильно "впрыскивается", какреагирование на интересные события, такие как:
Here is a repository, if you already have one please close it
Shut down, please close down your repository, and then yourself.
Если у вас есть интерфейс событий, я думаю, вы получите то, что вам нужно.Появление События фактически является Инъекцией.