Проектирование на UML. Сборник задач - страница 9

Шрифт
Интервал


может принимать значения: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, NovDec.

б. Укажите, что перечисление DayOfWeek может принимать значения: Mon, Tue, Wed, Thu, Fri, SatSun.

в. Добавьте классу Date частные атрибуты year, month, dayOfMonth типа Integer, а также общедоступные операции:

– получения года getYear типа Integer; – получения месяца getMonth типа Month; – получения дня getDayOfMonth типа Integer; – получения дня недели getDayOfWeek типа DayOfWeek.

г. Добавьте классу Date общедоступную статическую операцию now () типа Date.

д. Добавьте классу Period общедоступную статическую операцию between. У операции два аргумента: from и to. Оба аргумента имеют тип Date. Операция возвращает значение типа Period

е. Добавьте классу Date операцию plus c аргументом delta типа Period. Результат операции – значение типа Date.

1.4. Класс MyWindow уточняет абстрактный базовый класс Window. MyWindow состоит (композиция) из кнопки класса Button и надписи класса Label. Отобразите на диаграмме классов.

а. Класс Label имеет частный атрибут text типа String и общедоступную операцию setText c параметром text типа String.

б. Композиция между MyWindow и Button называется HoldsButton. Полюс со стороны кнопки имеет имя okButton, защищенную видимость, кратность 1. Композиция между MyWindow и Label называется HoldsLabel. Украшения полюса со стороны Label: название textLabel, частная видимость, кратность 1.

в. Для реакции на события кнопки реализован паттерн Слушатель (Listener) следующим образом. Класс Button предоставляет операцию setClickListener с единственным параметром l типа IClickListener. Интерфейс IClickListener содержит единственную операцию onClick без параметров.

г. Класс MyWindow реализует интерфейс IClickListener для реакции на нажатие кнопки. Отобразите на диаграмме, что между классом Button и MyWindow есть ассоциация с именем NotifyListener с направлением от кнопки к окну. Укажите, что полюс со стороны окна называется listener, имеет тип IClickListener, множественную кратность и частную видимость.

д. И Label и Button имеют строковый атрибут text, который можно менять с помощью метода setText. Вынесите общий атрибут и метод в абстрактный базовый класс TextWidget.

е. Отобразите на диаграмме объектов, как в процессе выполнения объекты связаны между собой: объект