того, чтобы делать вот так:
class B:
pass
class C:
pass
class A: # реализует некую бизнес логику
def __init__(self):
self.attr1 = B()
self.attr2 = C()
Лучше делать вот так:
class B:
pass
class C:
pass
class DI:
def __init__(self):
self.classB = B()
self.classC = C()
class A: # реализует некую бизнес логику
def __init__(self):
self.business_logic = DI()
---
P.S. В таком случае тестим мокая DI, а не патчем init (или любой другой зависмой функции).
Что такое di? выглядит как стратегия
Dependency Injecton
Не вижу dependency injection тут
ну он типа имеет в виду что B C это депенденси классы
Не вижу чтобы тут что-то инжектирвалось
Понял, курю дальше
Подсказка: параметры инита
DI это когда ты делаешь слабую связанность с чем-либо, в твоем случае с источником данных. Тебе нужно либо сразу данные передать в конструктор, либо указать как их получить
https://pastebin.com/p2WUyULC Собственно есть ощущение, что что-то все еще не так.
Обсуждают сегодня