Что такое property injection? dependency injection делится на 3 вида:
1. constructor injection. в этом случае зависимость передаётся через конструктор класса и далее присваивается свойству классаclass A:
def __init__(self, logger):
self.logger = logger
2. method injection. в этом случае зависимость передаётся через метод класса и в болто не нужен?ьшинстве случаев на присваивается свойству класса, но присваивается локальной переменной методаclass A:
def set_logger(self, logger):
logger_obj = logger
logger_obj.write('blabla')
3. а вот с третьим видом мне не всё понятно. Помогите пожалуйста понять что это и, если можно, тоже небольшой кусок кода приведите.
Вообще для python такой вид внедрения зависимости существует или из-за особенностей языка он прос

21 Авг 2019 в 06:58
288 +1
0
Ответы
1

т не используется.

Property injection - это вид dependency injection, при котором зависимость передается через установку (set) свойства класса. Однако, такой подход не является распространенным в Python из-за особенностей языка.

Вместо property injection, в Python чаще всего используют constructor injection или method injection. Вот пример метода injection в Python:

class Logger:
def write(self, message):
print(message)
class MyClass:
def set_logger(self, logger):
self.logger = logger
def do_something(self):
self.logger.write('Doing something')
logger = Logger()
my_class = MyClass()
my_class.set_logger(logger)
my_class.do_something()

В этом примере, зависимость logger передается в MyClass через метод set_logger. Затем, при вызове метода do_something, MyClass использует logger для записи сообщения.

Если все же есть необходимость использовать property injection, можно использовать дескрипторы в Python. Однако, это не так удобно и прямолинейно, как в других языках программирования.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир