Service1
private val service2: Service2
private val service3: Service3
private val serviceN: ServiceN
init {
// много строк, которые создают и настривают сервисы в зависимости от конфига
// причем настройка требуется вызыва каких то suspend функций,
// например чтобы предеать сообщение и получить ответ (чтобы не синхронизироваться с блокировкой потока)
}
fun doSomething() {
// тут нужно вызвать все сервисы предавая результат одного в параметры другого
}
}
в качестве воркэраунда конечно же можно сделать internal констркутор куда все эти сервисы передавать, и сделать публичную фабрику. но разве не лучше если компилятор это сделает за нас?
Ну вот для такого фасада, вероятно, оно действительно имеет смысл. Хотя да, в целом я бы не заморачивался и прокидывал все сервисы через private val в конструктор из фабрики.
Обсуждают сегодня