внедрение зависимости и регистрирующиеся интерфейсы

Это другие примеры:

print("Item 5: " + str(numpy_array[5]) ) #=> Item 5: [210 553]

print("Item 5: ", numpy_array[5][0], numpy_array[5][1] ) #=> Item 5:  210 553

print("Item 5: ", numpy_array[5][0], "-" , numpy_array[5][1] ) #=> Item 5:  210 553

print (f"Item 5: {numpy_array[5][0]}, {numpy_array[5][1]}" ) #=> Item 5: 210, 553
27
задан soren.enemaerke 11 July 2014 в 10:44
поделиться

4 ответа

Замечательно, что Вы изучаете инверсию управления и внедрение зависимости.

, Но для Вашего вопроса, существует другое понятие, которое Вы могли бы хотеть изучить: аспектно-ориентированное программирование.

В.NET, существуют некоторые хорошие платформы, доступные для того, чтобы сделать аспектно-ориентированное программирование, включая Замок, LinFu и Инжекционный Политикой Блок приложений Microsoft. На самом деле некоторые контейнеры инверсии управления имеют некоторые аспектно-ориентированные функции в них также.

Эти понятия и инструменты помогают сделать проблемы, такие как вход, занимают фоновое место с точки зрения шума кода и делают быть обработанным автоволшебно.

4
ответ дан yfeldblum 28 November 2019 в 05:55
поделиться

Мой совет? Перенесите регистрирующиеся интерфейсы в свое собственное. Я взял зависимость от Log4Net однажды, был записан и должен был осуществить рефакторинг много моих проектов из-за него.

4
ответ дан Andrei Rînea 28 November 2019 в 05:55
поделиться

Это не будет полным ответом, но одно соображение будет состоять в том, что при введении ILog через конструктора класса, можно затем дразнить ту платформу журналирования за поблочное тестирование. Другие мысли... Метод set свойства для передачи в ILog означает, что Вы не можете зарегистрировать действия от конструктора. Кроме того, Вы не знаете наверняка, если Ваш экземпляр даже имеет доступное значение ILog, что необходимо перенести каждый вызов с тестом для допустимого экземпляра ILog.

3
ответ дан JMD 28 November 2019 в 05:55
поделиться

Я придерживался бы введения его и использования интерфейса. Главным образом упрощать тестирование. Создание его легче заменить насмешкой или тупиком при тестировании объекта потребления.

я базировался бы, использовал ли я конструктора или инжекцию метода set на важности журнала к классу потребления. Если бы Вы хотите, чтобы это было очень важно затем, что я одобрил бы инжекцию конструктора, если дополнительный затем метод set.

я не вижу, где использование метода фабрики не могло работать с контейнером, однако, это затем делает тестирование потребительского класса зависящим от надлежащей конфигурации этого метода фабрики.

0
ответ дан toad 28 November 2019 в 05:55
поделиться
Другие вопросы по тегам:

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