Существует ли платформа внедрения зависимости для Smalltalk?

Я выполняю Pharo, и я нахожусь только в варианте использования такие крики для Внедрения зависимости а-ля Guice. Действительно ли там что-то подобно для Smalltalk?

Я понимаю, что можно отсортировать, делают все это пешком, просто передав в зависимостях явно. Но это чувствует себя неловким и подробным мне.

9
задан nes1983 11 August 2010 в 20:08
поделиться

3 ответа

Существует диалект Smalltalk с упором на внедрение зависимостей. Он расширяет язык таким образом, что не только имена методов, но и имена классов используют динамический поиск. Новый поиск имен классов больше всего похож на поиск методов, за исключением того, что он всплывает через серию вложенных классов, а не вдоль цепочки наследования. Таким образом, вы можете изменить внедренные классы, изменив среду вложения.

Чтобы узнать больше о диалекте, перейдите по этой ссылке .

4
ответ дан 3 November 2019 в 07:12
поделиться

Я не совсем эксперт, но я нашел эту статью в Google: http: // codebetter .com / blogs / jeremy.miller / archive / 2006/05/05 / 144172.aspx

Я надеюсь, что это приведет вас в правильном направлении.
:)

0
ответ дан 3 November 2019 в 07:12
поделиться

С Guice похоже, что вы определяете свои классы так, чтобы они принимали определенные интерфейсы в качестве параметров конструктора. Затем вы говорите Guice, что «этот интерфейс сопоставляется с классом, реализующим указанный интерфейс».

Подобные вещи совершенно не нужны в Smalltalk, потому что классы Smalltalk заботятся только о протоколах.

Если мы переведем пример на Smalltalk, мы сможем передать любой понравившийся нам объект в конструктор RealBillingService, пока этот объект отвечает на #logChargeResult: и #logConnectException:, т. Е. Пока этот объект реализует протокол, требуемый от журнал транзакций.

Вот ссылка на ответ, аналогичный приведенному выше.

1
ответ дан 3 November 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: