ава
2
сасаса
# Implementor
class Device:
def is_enabled(self):
pass
def enable(self):
pass
def disable(self):
pass
# ConcreteImplementor
class TV(Device):
def __init__(self):
self._on = False
def is_enabled(self):
return self._on
def enable(self):
self._on = True
def disable(self):
self._on = False
class Radio(Device):
def __init__(self):
self._on = False
def is_enabled(self):
return self._on
def enable(self):
self._on = True
def disable(self):
self._on = False
# Abstraction
class RemoteControl:
def __init__(self, device):
self._device = device
def toggle_power(self):
if self._device.is_enabled():
self._device.disable()
else:
self._device.enable()
# RefinedAbstraction
class AdvancedRemoteControl(RemoteControl):
def mute(self):
print("Device is muted.")
# Клиентский код
tv = TV()
remote = RemoteControl(tv)
remote.toggle_power() # Включает TV
radio = Radio()
advanced_remote = AdvancedRemoteControl(radio)
advanced_remote.toggle_power() # Включает Radio
advanced_remote.mute() # Заглушает Radio
# Implementor
class Device:
def is_enabled(self):
pass
def enable(self):
pass
def disable(self):
pass
# ConcreteImplementor
class TV(Device):
def __init__(self):
self._on = False
def is_enabled(self):
return self._on
def enable(self):
self._on = True
def disable(self):
self._on = False
class Radio(Device):
def __init__(self):
self._on = False
def is_enabled(self):
return self._on
def enable(self):
self._on = True
def disable(self):
self._on = False
# Abstraction
class RemoteControl:
def __init__(self, device):
self._device = device
def toggle_power(self):
if self._device.is_enabled():
self._device.disable()
else:
self._device.enable()
# RefinedAbstraction
class AdvancedRemoteControl(RemoteControl):
def mute(self):
print("Device is muted.")
# Клиентский код
tv = TV()
remote = RemoteControl(tv)
remote.toggle_power() # Включает TV
radio = Radio()
advanced_remote = AdvancedRemoteControl(radio)
advanced_remote.toggle_power() # Включает Radio
advanced_remote.mute() # Заглушает Radio
# Implementor class Device: def is_enabled(self): pass def enable(self): pass def disable(self): pass # ConcreteImplementor class TV(Device): def __init__(self): self._on = False def is_enabled(self): return self._on def enable(self): self._on = True def disable(self): self._on = False class Radio(Device): def __init__(self): self._on = False def is_enabled(self): return self._on def enable(self): self._on = True def disable(self): self._on = False # Abstraction class RemoteControl: def __init__(self, device): self._device = device def toggle_power(self): if self._device.is_enabled(): self._device.disable() else: self._device.enable() # RefinedAbstraction class AdvancedRemoteControl(RemoteControl): def mute(self): print("Device is muted.") # Клиентский код tv = TV() remote = RemoteControl(tv) remote.toggle_power() # Включает TV radio = Radio() advanced_remote = AdvancedRemoteControl(radio) advanced_remote.toggle_power() # Включает Radio advanced_remote.mute() # Заглушает RadioКомментарий