Jak uniknąć zastrzyku zależności w Scali?

czytamZastrzyk uzależnienia bez PDF gimnastyka co wskazuje, że nie ma potrzeby stosowania żadnych fantazyjnych struktur DI, ale jest to poza moim zasięgiem (przynajmniej bez konkretnych przykładów). Spróbuję oglądaćZastrzyk uzależnienia bez gimnastyki iDead Simple Dependency Injection kiedy mam szansę.

Używając Guice w Javie, jeśli A zależy od B i C, a B i C zależą od D, jeden miałby coś takiego:

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

a moduł, który mówi, której implementacji D użyć, po prostu poprosiłby o wystąpienie A z wtryskiwacza:

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

Biorąc pod uwagę to, co zostało przedstawione w powyższych adresach URL, jak wyglądałby odpowiednik powyższego kodu w Scali?

FWIW, badam teżhttps://github.com/dickwall/subcut/blob/master/GettingStarted.md i po prostu próbuję zrozumieć rozwiązanie anty-DI.

questionAnswers(4)

yourAnswerToTheQuestion