Скачать книгу

если известно, что лифт обслуживает с первого по пятый этажи?

      б. Уточните взаимодействие пассажира с лифтом. Укажите, что до нажатия кнопки этажа, пассажир обязан закрыть двери кнопкой pressDoors.

      в. Используя фрагменты, покажите, что пассажир не может нажать кнопку открытия и закрытия дверей в процессе движения лифта.

      г. (*) Укажите, что лифт проезжает один этаж за три секунды.

      3.7. Менеджер подключаемых модулей pluginsManager класса PluginsManager получает сообщение loadPlugins – указание на необходимость загрузки доступных модулей. Он синхронно запрашивает у объекта settings класса PluginManagerSettings пути к директориям с модулями и получает от settings значение свойства pluginsDirs. После чего в цикле для каждой директории и каждой библиотеки *.dll загружает модули вызовом собственной операции loadPlugins, передавая путь к библиотеке в параметрах.

      а. Реализуйте операцию loadPlugins класса PluginsManager. Взаимодействие начинается с создания нового экземпляра PluginsDll, затем идет получение количества подключаемых модулей в библиотеке getPluginsCount и получение всех модулей через вызовы getPlugin с параметром – номером модуля. После этого происходит инициализация каждого полученного модуля IPlugin вызовом метода initPlugin класса PluginsManager.

      б. Добавьте в модель описание действий по инициализации модуля. Метод initPlugin проверяет, обрабатывает ли модуль события графического интерфейса вызовом isUIHandled. Если обрабатывает, то регистрирует модуль в качестве слушателя событий addListener в классе PlayerUIPresenter.

      3.8. Взаимодействие выбора этажа SelectFloor содержит линию жизни кабины, представленной экземпляром активного класса Cabin, линию жизни floor экземпляра класса кнопки этажа FloorButton с селектором «1», и линию жизни класса Algorithm. Взаимодействие начинается с синхронного вызова кабиной операции нажатия кнопки isPressed на линии floor. Операция возвращает логическое значение «истина», если кнопка нажата. Затем экземпляр класса Cabin вызывает операцию selectFloor у алгоритма на линии в данном взаимодействии.

      а. Используя оператор цикла, покажите, что проверяется нажатие кнопок всех этажей. Переменную цикла, содержащую номер кнопки этажа, объявите как атрибут взаимодействия.

      б. Уточните взаимодействие, добавив вызовы операции указания алгоритму этажей, кнопки которых нажаты.

      в. Пусть взаимодействие описывает поведение кооперации, линии жизни соответствуют ролям в этой кооперации. Каким образом необходимо изменить взаимодействие, если кооперация владеет ролью с линией жизни алгоритма?

      г. (*) Приведите по одному примеру разрешенной и неразрешенной траекторий в данном взаимодействии.

      3.9. Пользовательский интерфейс мультимедиа проигрывателя PlayerView сообщает ev контроллеру UIPresenter о начале проигрывания элемента списка воспроизведения playEntry. Контроллер: 1) рассылает это сообщение всем своим слушателям собственной операцией raiseEvent; 2) получает от управляющего компонента Engine тип контента по имени name выбранного элемента item события ev вызовом getContentType; 3) по типу контента получает медиапоток вызовами getAudioStream или getVideoStream; 4) переводит интерфейс в состояние проигрывания либо видео, либо аудио

Скачать книгу