Я начал применять принципы SOLID к своим проектам. Все они для меня понятны, кроме инверсии зависимостей, потому что в Python у нас нет изменений для определения переменной в типе некоторого класса внутри другого класса (или, может быть, просто я не знаю). Итак, я реализовал принцип обращения зависимостей в двух формах и хочу знать, какая из них истинна, как я могу их исправить. Вот мои коды:
d1.py
:
class IFood:
def bake(self, isTendir: bool): pass
class Production:
def __init__(self):
self.food = IFood()
def produce(self):
self.food.bake(True)
class Bread(IFood):
def bake(self, isTendir:bool):
print("Bread was baked")
d2.py
:
from abc import ABC, abstractmethod
class Food(ABC):
@abstractmethod
def bake(self, isTendir): pass
class Production():
def __init__(self):
self.bread = Bread()
def produce(self):
self.bread.bake(True)
class Bread(Food):
def bake(self, isTendir:bool):
print("Bread was baked")