Gibt es ein Dependency-Injection-Framework für Smalltalk?

8

Ich betreibe Pharo und ich bin nur in einem Anwendungsfall, der für Dependency Injection à la Guice schreit . Gibt es etwas Ähnliches für Smalltalk?

Ich verstehe, dass Sie alles zu Fuß erledigen können, indem Sie Ihre Abhängigkeiten explizit eingeben. Aber das fühlt sich peinlich und verbal für mich an.

    
nes1983 21.04.2010, 15:33
quelle

3 Antworten

4

Es gibt einen Smalltalk-Dialekt mit starker Betonung der Abhängigkeitsinjektion. Es erweitert die Sprache so, dass nicht nur Methodennamen, sondern auch Klassennamen eine dynamische Suche verwenden. Das neuartige Nachschlagen von Klassennamen ähnelt dem von Methoden am ähnlichsten, außer dass es durch eine Reihe von verschachtelten Klassen und nicht entlang einer Vererbungskette aufsteigt. Daher können Sie die eingefügten Klassen ändern, indem Sie die Schachtelungsumgebung ändern.

Um mehr über den Dialekt zu erfahren, folgen Sie diesem Link .

    
akuhn 23.04.2010, 13:26
quelle
1

Mit Guice sieht es so aus, als würden Sie definieren Ihre Klassen nehmen bestimmte Schnittstellen als Konstruktorparameter. Dann sagen Sie Guice "diese Schnittstelle entspricht der Klasse, die diese Schnittstelle implementiert".

Diese Art von Funktion ist in Smalltalk völlig unnötig, da Smalltalk-Klassen sich nur um Protokolle kümmern.

Wenn wir das Beispiel in Smalltalk übersetzten, könnten wir jedes beliebige Objekt in den Konstruktor des RealBillingService übergeben, solange dieses Objekt auf #logChargeResult: und #logConnectException: reagiert, dh solange das Objekt das erforderliche Protokoll implementiert hat ein Transaktionslog.

Hier finden Sie einen Link , der eine ähnliche Antwort wie die oben genannten enthält.

    
Frank Shearar 23.04.2010 12:42
quelle
0

Ich bin nicht wirklich ein Experte, aber ich fand diesen Artikel auf Google: Ссылка

Ich hoffe, das wird Sie in die richtige Richtung führen.
:)

    
akshaykarthik 21.04.2010 15:36
quelle