Como evitar a injeção de dependência no Scala?

Eu leioInjeção de Dependência Sem a Ginástica PDF o que indica que não há necessidade de qualquer estrutura sofisticada de DI, mas está além do meu alcance (pelo menos sem exemplos concretos). Vou tentar assistirInjeção de Dependência Sem a Ginástica eInjeção de Dependência Simples Inoperante quando eu tiver uma chance

Usando o Guice em Java, se A depende tanto de B quanto de C e ambos B e C dependem de D, seria algo como:

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 { /* ... */ }

e um módulo que diz qual implementação de D usar, então seria necessário pedir uma instância de A do injetor:

A a = injector.createInstance(A.class);

Dado o que é apresentado nas URLs acima, como seria o Scala-equivalente do código acima?

FWIW, também estou investigandohttps://github.com/dickwall/subcut/blob/master/GettingStarted.md e estou simplesmente tentando entender a solução anti-DI.

questionAnswers(4)

yourAnswerToTheQuestion