# Реализация паттерна Мост # Абстракция class Device: def __init__(self, device_impl): self.device_impl = device_impl def power_on(self): self.device_impl.power_on() def power_off(self): self.device_impl.power_off() def set_channel(self, channel): self.device_impl.set_channel(channel) # Реализация class TV: def power_on(self): print("TV is ON") def power_off(self): print("TV is OFF") def set_channel(self, channel): print(f"TV channel is set to {channel}") class Radio: def power_on(self): print("Radio is ON") def power_off(self): print("Radio is OFF") def set_channel(self, channel): print(f"Radio channel is set to {channel}") # Тестирование tv = Device(TV()) tv.power_on() tv.set_channel(5) tv.power_off() radio = Device(Radio()) radio.power_on() radio.set_channel("FM") radio.power_off()
Этот код создает классы TV
и Radio
в качестве реализаций устройств, а также класс Device
в качестве абстракции. Класс Device
принимает на вход реализацию устройства и делегирует ему вызовы методов. Таким образом, мы можем легко добавлять новые устройства и использовать их с абстракцией Device
.
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.