Что такое 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 такой вид внедрения зависимости существует или из-за особенностей языка он прос
Property injection - это вид dependency injection, при котором зависимость передается через установку (set) свойства класса. Однако, такой подход не является распространенным в Python из-за особенностей языка.
Вместо property injection, в Python чаще всего используют constructor injection или method injection. Вот пример метода injection в Python:
В этом примере, зависимость logger передается в MyClass через метод set_logger. Затем, при вызове метода do_something, MyClass использует logger для записи сообщения.
Если все же есть необходимость использовать property injection, можно использовать дескрипторы в Python. Однако, это не так удобно и прямолинейно, как в других языках программирования.
т не используется.
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. Однако, это не так удобно и прямолинейно, как в других языках программирования.