from abc import ABC, abstractmethod
# Абстракция, от которой будут зависеть все
class SpeedProvider(ABC):
@abstractmethod
def get_speed(self): pass
class SpeedSensor(SpeedProvider):
def get_speed(self): return 60
class GPSSensor(SpeedProvider):
def get_speed(self): return 55
class Dashboard:
# Закидываем датчик через параметр
def __init__(self, sensor: SpeedProvider):
self.sensor = sensor
def show_speed(self):
print(f"Скорость: {self.sensor.get_speed()}")