Как избежать внедрения зависимостей в 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.

Ответы на вопрос(4)

Ваш ответ на вопрос