Я хочу, чтобы каждый объект автомобиля состоял из brake_system
и engine_system
объектов
У вас есть абстрактные классы для систем
class EngineSystem(ABC):
pass
class BrakeSystem(ABC):
pass
Автомобиль должен состоять из двух систем:
class Car:
def __init__(self, engine: EngineSystem, brake: BrakeSystem):
self._engine_system = engine
self._brake_system = brake
@property
def engine_type(self) -> EngineSystem:
return self._engine_system
@property
def brake_type(self) -> BrakeSystem:
return self._engine_system
А теперь, если вам нужно создать конкретную машину
tesla = Car(ElectroEngine(), Disks())
# or even
class Tesla(Car):
def __init__(self):
super().__init__(ElectroEngine(), Disks())
tesla = Tesla()
Этот подход позволяет вам создать car
как композицию его систем.