¿Cómo evitar la inyección de dependencia en Scala?

Yo leoInyección de dependencia sin la gimnasia PDF lo que indica que no hay necesidad de ningún marco DI sofisticado, pero está más allá de mi alcance (al menos sin ejemplos concretos). Voy a tratar de verInyección de dependencia sin gimnasia yInyección de dependencia simple muerta cuando tengo la oportunidad

Usando Guice en Java, si A depende de B y C y B y C dependen de D, uno tendría 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 { /* ... */ }

y un módulo que dice qué implementación de D debe usar, entonces uno simplemente solicitaría una instancia de A desde el inyector:

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

Dado lo que se presenta en las URL anteriores, ¿cómo se vería el equivalente de Scala del código anterior?

FWIW, yo también estoy investigandohttps://github.com/dickwall/subcut/blob/master/GettingStarted.md y simplemente estoy tratando de entender la solución anti-DI.

Respuestas a la pregunta(4)

Su respuesta a la pregunta