Как избежать внедрения зависимостей в Scala?
Я читаюВнедрение зависимостей без гимнастики PDF что указывает тамнет необходимости в каких-либо модных DI-фреймворках, но этоs вне моего понимания (по крайней мере, без конкретных примеров). Я'попробую посмотретьИнъекция зависимостей без гимнастики а такжеDead Simple Dependency Injection когда у меня есть шанс.
Используя Guice в Java, если A зависит от B и C, а B и C зависят от D, можно получить что-то вроде:
public class A {
@Inject
public A(B b, C c) {
this.b = b;
this.c = c;
}
}
public class B {
@Inject
public B(D d) {
this.d = d;
}
}
public class C {
@Inject
public C(D d) {
this.d = d;
}
}
public class D { /* ... */ }
и модуль, который говорит, какую реализацию D использовать, тогда можно было бы просто запросить экземпляр A у инжектора:
A a = injector.createInstance(A.class);
Учитывая чтоВ приведенных выше URL-адресах, как будет выглядеть Scala-эквивалент приведенного выше кода?
FWIW, яЯ также расследуюhttps://github.com/dickwall/subcut/blob/master/GettingStarted.md и я просто пытаюсь понять решение анти-DI.