Как избежать внедрения зависимостей в Scala?
Я читаюВнедрение зависимостей без гимнастики PDF что указывает на то, что нет необходимости в какой-либо причудливой структуре DI, но это за пределами моего понимания (по крайней мере, без конкретных примеров). Я попробую посмотретьИнъекция зависимостей без гимнастики а также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-эквивалент приведенного выше кода?
Я также занимаюсь расследованиемhttps://github.com/dickwall/subcut/blob/master/GettingStarted.md и я просто пытаюсь понять решение анти-DI.