игра брюс 2048
Главная / Программирование / Объектно-ориентированное программирование и программная инженерия / Тест 8

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

Упражнение 1:
Номер 1
Что понимается под образцом проектирования?

Ответ:

 (1) образцово выполненный проект 

 (2) класс, допускающий повторное использование 

 (3) библиотека классов (DLL), допускающая повторное использование 

 (4) семейство классов, как правило отложенных, с заданной архитектурой, предназначенных для решения определенного круга задач 


Номер 2
Какие свойства справедливы для образца проектирования?

Ответ:

 (1) задает архитектуру набора классов, составляющих образец проектирования 

 (2) каждый класс, входящий в образец проектирования, должен быть полностью определен 

 (3) предназначен для решения определенного круга задач 

 (4) требует предварительной настройки при решении конкретной задачи 


Номер 3
Какие утверждения справедливы для образца проектирования "Наблюдатель" (паттерн Observer)?

Ответ:

 (1) представляет классический, хорошо изученный образец проектирования 

 (2) не имеет недостатков 

 (3) может использоваться в языках, где нет агентов, универсальности и кортежей 

 (4) использует такие возможности ООП, как полиморфизм и динамическое связывание 


Упражнение 2:
Номер 1
Архитектура образца "Наблюдатель" включает проектирование класса Publisher (Издатель), который является родителем соответствующего семейства классов. Какие утверждения справедливы относительно этого класса?

Ответ:

 (1) класс задает общие свойства и поведение издателей без учета какой-либо специфики конкретного издателя 

 (2) класс является эффективным с полностью заданной реализацией 

 (3) класс является отложенным 

 (4) класс задает свойства и поведение конкретного издателя 


Номер 2
Архитектура образца "Наблюдатель" предполагает проектирование двух классов Publisher (Издатель) и Subscriber (Подпичик), которые являются родителями соответствующих семейств классов. Какие утверждения справедливы относительно этих классов?

Ответ:

 (1) оба класса проектируются как отложенные классы 

 (2) оба класса проектируются как эффективные – полностью реализованные классы 

 (3) класс Publisher проектируется как эффективный – полностью реализованный класс, а класс Subscriber проектируется как отложенный класс 

 (4) класс Subscriber проектируется как эффективный – полностью реализованный класс, а класс Publisher проектируется как отложенный класс 


Номер 3
Архитектура образца "Наблюдатель" предполагает проектирование:

Ответ:

 (1) одного семейства классов 

 (2) двух семейств классов 

 (3) трех семейства классов 

 (4) четырех семейств классов 


Упражнение 3:
Номер 1
Какие поля и методы имеет класс Subscriber?

Ответ:

 (1) поле subscribers, задающее список подписчиков 

 (2) поле publishers, задающее список издателей 

 (3) метод Subscribe, позволяющий подписаться у издателя, заданного аргументом метода 

 (4) метод Unsubscribe, позволяющий отменить подписку у издателя, заданного аргументом метода 


Номер 2
Каким отношением связаны классы Subscriber и Publisher?

Ответ:

 (1) класс Subscriber является наследником класса Publisher 

 (2) класс Publisher является наследником класса Subscriber 

 (3) класс Subscriber является клиентом класса Publisher 

 (4) класс Publisher является клиентом класса Subscriber 


Номер 3
Архитектура образца "Наблюдатель" предполагает проектирование класса Subscriber (Подписчик), который является родителем соответствующего семейства классов. Какие утверждения справедливы относительно этого класса?

Ответ:

 (1) класс задает общие свойства и поведение подписчиков без учета какой-либо специфики конкретного подписчика 

 (2) класс является эффективным с полностью заданной реализацией 

 (3) класс является отложенным 

 (4) класс задает свойства и поведение конкретного подписчика 


Упражнение 4:
Номер 1
При описании образца "Наблюдатель" могут применяться две схемы задания аргументов события. Первая предполагает, что аргументы задаются списком, содержащим элементы произвольного типа, заданного параметром ANY. Во второй схеме аргументы задаются в ориентации на конкретный вид сообщения. Какие утверждения справедливы относительно этих двух схем

Ответ:

 (1) первая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, не требуя внесения изменений ни в класс Publisher, ни в класс Subscriber 

 (2) вторая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, не требуя внесения изменений ни в класс Publisher, ни в класс Subscriber 

 (3) первая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, но требует внесения изменений в класс Publisher 

 (4) первая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, но требует внесения изменений в классы, являющиеся потомками класса Subscriber, для приведения аргумента, заданного типом ANY к конкретному типу аргумента 

 (5) вторая схема требует настройки и внесения изменений в класс Publisher 


Номер 2
Какой из методов класса Publisher существует в нескольких вариантах?

Ответ:

 (1) Subscribe 

 (2) Unsubscribe 

 (3) Publish 

 (4) Subscribed 


Номер 3
Какие поля и методы имеет класс Publisher?

Ответ:

 (1) поле subscribers, задающее список подписчиков 

 (2) поле publishers, задающее список издателей 

 (3) метод Subscribe, позволяющий подписать подписчика, заданного аргументом метода 

 (4) метод Unsubscribe, позволяющий отменить подписку подписчика, заданного аргументом метода 


Упражнение 5:
Номер 1
Образец "Наблюдатель" имеет серьезные недостатки. Поэтому в таких языках, как Eiffel, где есть такие средства как агенты и кортежи, можно использовать при работе с событиями другой образец, основанный на классе EVENT_TYPE. Какие утверждения справедливы для этого класса?

Ответ:

 (1) это единственный класс, лежащий в основе нового образца 

 (2) класс играет роль класса Subscriber, но для публикации необходим еще один класс – аналог класса Publisher 

 (3) класс играет роль класса Publisher, но для подписки необходим еще один класс – аналог класса Subscriber 

 (4) методы класса позволяют осуществлять как публикацию сообщения, так и подписку на событие, а также отмену подписки 


Номер 2
Какие утверждения о недостатках, характерных для образца "Наблюдатель", являются справедливыми?

Ответ:

 (1) связи между классами Subscriber и Publisher слабые, - издатели не знают своих подписчиков, подписчики не знают издателей, что мешает их взаимодействию 

 (2) связи между классами Subscriber и Publisher жесткие, - издатели знают своих подписчиков, подписчики знают издателей 

 (3) возможность применения двух схем аргументов обеспечивает гибкость и свободу выбора, облегчая разработку конкретного проекта 

 (4) обе схемы задания аргументов события, применяемые в образце "Наблюдатель", имеют серьезные недостатки 


Номер 3
Какой из методов не входит в интерфейс класса EVENT_TYPE?

Ответ:

 (1) Publish 

 (2) Handle 

 (3) Subscribe 

 (4) Unsubscribe 


Упражнение 6:
Номер 1
Какие утверждения справедливы относительно класса EVENT_TYPE, задающего описание типа события?

Ответ:

 (1) класс является универсальным и имеет один аргумент типа ANY 

 (2) класс является универсальным и имеет один аргумент типа ARGUMENTS 

 (3) класс является универсальным и имеет один аргумент типа ARGUMENTS->TUPLE с ограничением наследования, требующим, чтобы аргументы представляли кортеж 

 (4) класс не является универсальным и имеет один аргумент типа ANY 


Номер 2
Где следует объявлять событие?

Ответ:

 (1) если событие не зависит от контекста, то его следует объявлять в классе, доступном как издателю, публикующего событие, так и подписчикам события 

 (2) если событие зависит от контекста, то его следует объявлять в каждом классе, задающем контекст 

 (3) событие всегда следует объявлять в классе, задающем издателя 

 (4) событие всегда следует объявлять в классе, задающем подписчика 


Номер 3
Пусть в интерфейсе пользователя заданы 5 командных кнопок класса Button и три пункта меню класса Menu. Для всех этих элементов возможно событие Click. Сколько объектов, задающих событие Click, следует создать?

Ответ:

 (1)

 (2)

 (3)

 (4)

 (5)


Упражнение 7:
Номер 1
Какие утверждения являются справедливыми относительно контроллера в модели МОК (MVC)?

Ответ:

 (1) контроллер является независимой частью ПО 

 (2) контроллер обеспечивает подписку элементов модели на типы события 

 (3) контроллер всегда связан с обликами 

 (4) контроллер связан с обликами, если используются контексты 


Номер 2
В образце МОК (MVC) класс EVENT_TYPE:

Ответ:

 (1) не используется 

 (2) является частью модели 

 (3) является частью облика 

 (4) является частью контроллера 


Номер 3
Какие утверждения являются справедливыми относительно списка подписчиков для образца, связанного с классом EVENT_TYPE?

Ответ:

 (1) список subscribers теперь не нужен 

 (2) список subscribers по-прежнему существует и содержит, как и ранее, объекты, задающие подписчиков 

 (3) список subscribers по-прежнему существует, но теперь он включает агентов, задающих процедуры обработки события 

 (4) список subscribers объявляется в каждом классе, задающем издателя 

 (5) список subscribers является компонентом класса EVENT_TYPE 


Упражнение 8:
Номер 1
Пусть в интерфейсе пользователя заданы 5 командных кнопок класса Button и три пункта меню класса Menu. Для всех этих элементов возможно событие Click. Сколько обработчиков события Click, следует создать в этой ситуации?

Ответ:

 (1)

 (2)

 (3)

 (4)

 (5)


Номер 2
При подписке на событие выполнялся следующий оператор: my_button.my_click.subscribe(agent my_method) Какие утверждения является корректными?

Ответ:

 (1) объект my_button задает контекст события 

 (2) объект my_button задает событие 

 (3) объект my_ click задает событие 

 (4) объект my_ click задает контекст события 

 (5) объект my_ method задает контекст события 

 (6) объект my_ method задает обработчик события 


Номер 3
При подписке на событие выполнялся следующий оператор: left_click.subscribe(agent my_method) Какие утверждения является корректными?

Ответ:

 (1) объект left_click задает контекст события 

 (2) объект left_click задает событие 

 (3) объект my_ method задает событие 

 (4) объект my_ method задает обработчик события 

 (5) событие не использует контекст 




Главная / Программирование / Объектно-ориентированное программирование и программная инженерия / Тест 8