Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Проектирование скрывающих информацию классовСами классы были определены на этапе разбиения на объекты, теперь речь пойдет о проектировании их операций. Классы абстрагирования данных описаны выше; в этом разделе мы разработаем остальные классы, скрывающие информацию.
11. 1. Проектирование классов интерфейса устройств Класс интерфейса устройства скрывает истинный интерфейс с физическим устройством, предлагая вместо него виртуальный интерфейс. Для каждого типа устройств ввода/вывода имеется отдельный интерфейсный класс. Состав операций, поддерживаемых таким классом, зависит от функций, которые должен поддерживать объект интерфейса. Классы интерфейса устройств изображены на рис. 16 и описаны ниже: - Интерфейс Датчика яркости. Предоставляет две операции: читать (считывает значение Датчика яркости) и инициализировать; - Интерфейс Датчика движения. Предоставляет две операции: читать (считывает значение Датчика движения) и инициализировать; - Интерфейс Выключателя. Также предоставляет две операции: читать (считывает значение Выключателя) и инициализировать; - Интерфейс Лампы. Предоставляет операции включить и выключить, соответствующие сообщениям Включение лампы и Выключение лампы; - Интерфейс Мотора жалюзи. Предоставляет операции поднять и опустить, соответствующие сообщениям Поднятие жалюзи и Опускание жалюзи. Каждая операция имеет один параметр, задающий уровень, на который необходимо соответственно поднять / опустить жалюзи. В частности параметр может быть формализован как промежуток времени, в течение которого работает мотор и по окончании которого мотор автоматически выключается; - Интерфейс Монитора. Предоставляет следующие операции: отобразить (отображает схему расположения всех датчиков, ламп, моторов жалюзи, выключателей для конкретного этажа, номер которого и является параметром), сообщить о неполадке (отображает неисправные элементы системы и может сопровождаться характерным для уведомления звуком).
Рис. 16. Классы интерфейса устройств 11. 2. Проектирование классов, зависящих от состояния В системе есть два зависящих от состояния класса - Управление лампами и Управление жалюзи, которые инкапсулирует диаграммы состояний, реализованные в виде таблицы переходов, изображённые соответственно на рис. 6 и рис. 7. Каждый из этих классов поддерживает две операции: обработатьСобытие и текущееСостояние. Эти объекты вложены соответственно в задачи Контроллер Ламп и Контроллер Жалюзи. Поскольку задача существует в нескольких экземплярах, то и экземпляров класса будет несколько – по одному для каждого этажа. Спецификации классов представлены на рис. 17.
Рис. 17. Зависящие от состояния управляющие объекты
|