Объектно-ориентированное проектирование с примерами


Определение границ рассматриваемой задачи - часть 7


setLowHumidity - установка минимальной влажности
setHighHumidity - установка максимальной влажности

Атрибуты: humidity - влажность

Нам не ставится задача определения тренда влажности, поэтому класс HumiditySensor, в отличие от классов TemperatureSensor

и PressureSensor, не является потомком класса TrendSensor.

Однако требования к системе подразумевают наличие общего поведения для всех трех вышеперечисленных классов. В частности, мы должны обеспечить показ максимального и минимального значений каждого параметра за 24-часа. Эту обязанность можно отразить в следующем описании, общем для всех трех классов:

Отвественность: Генерация сообщений о максимальных и минимальных значениях параметров за 24-часа.

Операции: highValue - максимальное значение
lowValue - минимальное значение
timeOf HighValue - время, соответствующее максимальному значению
timeOfLowValue - время, соответствующее минимальному значению

Пока отложим решение вопроса о том, как реализовать эту ответственность; мы вернемся к нему на этапе проектирования. Однако, учитывая то, что данное поведение является общим для всех трех датчиков, представляется целесообразным организация еще одного суперкласса, который мы назовем HistoricalSensor. Класс HumiditySensor является прямым потомком класса HistoricalSensor, так же как и TrendSensor. Последний служит промежуточным абстрактным классом, переходным между абстрактным HistoricalSensor и конкретными TemperatureSensor и PressureSensor.

Абстракция для датчика скорости ветра может выглядеть следующим образом:

Имя: WindSpeedSensor

Ответственность: Поддержание информации о текущей скорости ветра.

Операции: currentSpeed - текущая скорость
setLowSpeed - установка минимальной скорости
setHighSpeed - установка максимальной скорости

Атрибуты: speed - скорость

Требования к системе не предполагают возможности получения скорости непосредственно от датчика; текущая скорость ветра должна определяться как отношение числа оборотов на счетчике к величине интервала времени, за которое производились измерения.


Начало  Назад  Вперед



Книжный магазин