Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР-6 / ЯП №6

.pdf
Скачиваний:
1
Добавлен:
02.06.2026
Размер:
318 Кб
Скачать
☆

current_time = time(21, 30) central_zone.update_all(current_time) north_zone.update_all(current_time)

# создание контроллера (зависимость)

controller = LightingController("Главный контроллер") # объект controller: контроллер системы controller.add_zone(central_zone)

controller.add_zone(north_zone)

controller.monitor_zone(central_zone)

# зависимость: мониторинг central_zone

controller.system_report()

# зависимость: отчёт по всей системе

#дополнительные методы производных классов fixture1.set_brightness(75)

sensor1.calibrate(20.0)

#демонстрация: высокая освещённость (светло) sensor1.set_light_level(150.0) sensor2.set_light_level(200.0) sensor3.set_light_level(120.0)

current_time = time(9, 0) central_zone.update_all(current_time) north_zone.update_all(current_time)

controller.system_report()

# демонстрация композиции: расписание — часть фонаря print(f"\nКОМПОЗИЦИЯ: фонарь {street_light1._light_id} имеет расписание

{street_light1._schedule._on_time}-{street_light1._schedule._off_time}")

# демонстрация агрегации: удаление фонаря из зоны (фонарь продолжает существовать) central_zone.remove_light(street_light2) # удаление street_light2 из central_zone

print(f"фонарь '{street_light2._light_id}' всё ещё существует: {street_light2._location}") # объект жив

11

Соседние файлы в папке ЛР-6