Главная / Программирование /
Программирование на С/С++ / Тест 151
Программирование на С/С++ - тест 151
Упражнение 1:
Номер 1
Целями проектирования всегда являются:
Ответ:
 (1) документирование дизайна системы позволяет детализировать описание задач для разработчиков 
 (2) моделирование поведения системы и оценка её архитектурных качеств 
 (3) получение максимально простой системы 
 (4) получение максимально гибкой системы 
Номер 2
На этапе проектирования находятся компромиссы между следующими характеристиками системы:
Ответ:
 (1) соответствие дизайна задаче vs. общности задачи 
 (2) доступность элементов системы vs. безопасность 
 (3) простота интерфейсов против возможности тонкой настройки 
 (4) гибкость настройки против расширяемости и переносимости 
Номер 3
В ходе разработки дизайна должны быть обязательно выполнены следующие шаги:
Ответ:
 (1) определение максимально простого дизайна 
 (2) идентифицированы объекты 
 (3) определена степень детализации 
 (4) определён набор конфигурируемых параметров 
 (5) определены интерфейсы объектов 
 (6) определены реализации объектов 
Упражнение 2:
Номер 1
Какие объекты появляются и рассматриваются при проектировании?
Ответ:
 (1) объекты модели проблемной области 
 (2) объекты стандарта С++ или другого языка программирования 
 (3) абстракции, применяемых в дизайне системы  
 (4) конкретизации шаблонов обобщенного программирования 
 (5) объекты, входящие в используемые в дизайне шаблоны проектирования 
Номер 2
Какие задачи решаются на самом начальном этапе проектирования системы?
Ответ:
 (1) определение границ системы 
 (2) определение методов объектов системы 
 (3) моделирование предметной области 
 (4) определение количества атрибутов у объектов системы 
 (5) определение сигнатуры интерфейсов объектов 
Номер 3
Какие вопросы решаются при определении интерфейсов объектов системы?
Ответ:
 (1) какими запросами будут обмениваться объекты 
 (2) будет использоваться композиция или агрегирование 
 (3) определение иерархии наследования используемых классов 
 (4) определение сигнатуры интерфейсов объектов 
 (5) определение границ системы 
Номер 4
Какие вопросы решаются при определении реализации объектов системы?
Ответ:
 (1) какими запросами будут обмениваться объекты 
 (2) будет использоваться композиция или агрегирование 
 (3) определение иерархии наследования используемых классов 
 (4) определение границ системы 
Упражнение 3:
Номер 1
По какой причине может потребоваться переделка дизайна в многослойной архитектуре?
Ответ:
 (1) чрезмерное использование наследования 
 (2) верхний слой функций работает только с нижележащим слоем интерфейсов 
 (3) промежуточный слой использует функции всех нижележащих слоёв 
 (4) обработка одного из запросов верхнего уровня привязана к Windows платформе 
 (5) привязка алгоритмов обработки к представлению объектов 
Номер 2
На какие будущие изменения проектируемой системы необходимо обратить внимание при её проектировании?
Ответ:
 (1) поддержка новых функций 
 (2) поддержка новых платформ 
 (3) оптимизация реализации используемых алгоритмов 
 (4) развитие смежных технологий, с которыми системе приходиться взаимодействовать 
Номер 3
На что необходимо обратить внимание при проектировании системы что бы избежать её переделки через некоторое время?
Ответ:
 (1) предпочитать наследование композиции 
 (2) при проектировании в первую очередь заботится о максимальной оптимизации реализации алгоритмов обработки и методов классов 
 (3) пытаться увидеть изменения, которые необходимо будете сделать в системе через полгода или год 
 (4) инкапсулировать допускающие изменения элементы дизайна и поведения 
Упражнение 4:
Номер 1
//====================== start of sample.cpp ==========================
Декоратор
Компоновщик
Мост
Фасад
//====================== end of sample.cpp ==========================
]]>К какой группе шаблонов относятся приведённые выше шаблоны объектно-ориентированного проектирования?
Ответ:
 (1) порождающие шаблоны 
 (2) структурные шаблоны 
 (3) поведенческие шаблоны 
 (4) базовые шаблоны 
Номер 2
Какие утверждения про шаблоны объектно-ориентированного проектирования верны?
Ответ:
 (1) шаблоны — это типовые решения для типовых архитектурных проблем 
 (2) каждый шаблон привязан к своей предметной области 
 (3) использованием шаблонов достигается само-документируемость архитектуры 
 (4) использованием шаблонов достигается значительное повышение быстродействия системы 
Номер 3
Какие из шаблонов относятся к уровню шаблонов объектно-ориентированного проектирования?
Ответ:
 (1) сортировка пузырьком 
 (2) сервисно-ориентированная архитектура 
 (3) посетитель 
 (4) абстрактная фабрика 
Номер 4
Какая группа шаблонов отвечает за организацию сочленения объектов и классов?
Ответ:
 (1) порождающие шаблоны 
 (2) базовые шаблоны 
 (3) структурные шаблоны 
 (4) поведенческие шаблоны 
Упражнение 5:
Номер 1
Каковы основные особенности наследования?
Ответ:
 (1) определяет реализацию одного класса в терминах другого 
 (2) позволяет выполнять подмену реализации во время исполнения программы 
 (3) используется меньшее количество объектов, в отличие от композиции 
 (4) размер класса получается меньше чем при композиции 
 (5) возникает высокая зависимость от реализации 
Номер 2
Каковы основные особенности композиции?
Ответ:
 (1) определяет реализацию одного объекта в терминах другого 
 (2) позволяет выполнять подмену реализации во время исполнения программы 
 (3) используется меньшее количество объектов, в отличие от наследования 
 (4) размер класса получается больше чем при наследовании 
Номер 3
При каких способах композиции и наследования время жизни инкапсулируемого объекта не зависит от времени жизни инкапсулирующего объекта?
Ответ:
 (1) инкапсуляция экземпляра 
 (2) инкапсуляция указателя 
 (3) инкапсуляция ссылки 
 (4) наследование 
Номер 4
Каковы особенности агрегирования по сравнению с осведомлённостью?
Ответ:
 (1) сильная связанность 
 (2) время жизни агрегируемого объекта зависит от времени жизни агрегирующего объекта 
 (3) инкапсуляция выполняется только по ссылке или указателю 
 (4) применяется реже чем осведомлённость 
Упражнение 6:
Номер 1
Каковы особенности шаблона «делегирование»?
Ответ:
 (1) назначение шаблона - передача ответственности на другой класс за выполнение запроса клиенту 
 (2) класс, поддерживающий шаблон "неизменяемый «объект» не должен иметь изменяемых атрибутов 
 (3) возникает 2 участника, которые могут быть в отношении наследования или композиции 
 (4) шаблон «отложенной инициализации» не может быть использован совместно с шаблоном «делегирование» 
 (5) при использовании шаблона «делегирование» упрощается статический анализ кода даже в случае сильной параметризации объектов 
Номер 2
Каковы особенности базового шаблона «неизменяемый объект»?
Ответ:
 (1) в модуле может быть только один по одному экземпляру каждого класса, поддерживающего этот шаблон 
 (2) через шаблон «неизменяемый объект» выполняется передача ответственности от одного объекта другому (за исполнение запросов клиента) 
 (3) класс, поддерживающий шаблон «неизменяемый объект» не должен иметь изменяемых атрибутов 
 (4) класс, поддерживающий шаблон «неизменяемый объект» не должен иметь методов, изменяющих состояние объекта 
 (5) шаблон «отложенной инициализации» не может быть использован для типа, поддерживающего шаблон «неизменяемый объект» 
Номер 3
Каковы особенности базового шаблона «интерфейсный класс»?
Ответ:
 (1) назначение шаблона - определение абстрактного типа данных в целях повторного использования 
 (2) использование шаблона позволяет динамическую замену конкретных классов, реализующих заданный интерфейс 
 (3) интерфейсный класс должен описывать поведение объекта путём предоставления методов 
 (4) интерфейсный класс не должен иметь изменяемых атрибутов 
Упражнение 7:
Номер 1
Какой из порождающих шаблонов использует метод клонирования?
Ответ:
 (1) абстрактная фабрика 
 (2) строитель 
 (3) фабричный метод 
 (4) прототип 
 (5) класс с единственным экземпляром 
Номер 2
Про какого из поражающих шаблонов можно сказать: «шаблон уровня объекта, отделяющий конструирование сложного объекта от его реализации»?
Ответ:
 (1) абстрактная фабрика 
 (2) строитель 
 (3) фабричный метод 
 (4) прототип 
 (5) класс с единственным экземпляром 
Номер 3
Для каких порождающих шаблонов инстанциируемые классы определяются динамически?
Ответ:
 (1) абстрактная фабрика 
 (2) строитель 
 (3) фабричный метод 
 (4) прототип 
 (5) класс с единственным экземпляром 
Номер 4
Какие недостатоки шаблона «абстрактная фабрика»?
Ответ:
 (1) добавление нового типа создаваемых объектов ведёт к переделке всех реализаций фабрики 
 (2) необходимость вызова 2-х и более методов для создания объекта 
 (3) невозможно избежать возникновения иерархии создающих объектов, параллельной иерархии создаваемых объектов 
 (4) ограничивает масштабируемость системы 
Упражнение 8:
Номер 1
Какой из структурных шаблонов помогает использовать чужой класс, интерфейс которого несовместим с классом, который его должен использовать?
Ответ:
 (1) адаптер 
 (2) мост 
 (3) компоновщик 
 (4) декоратор 
Номер 2
Какой из структурных шаблонов помогает разорвать связь между интерфейсом и реализацией интерфейса?
Ответ:
 (1) адаптер 
 (2) мост 
 (3) компоновщик 
 (4) декоратор 
Номер 3
Какой из структурных шаблонов помогает организовать единообразное хранение объектов в древовидных структурах?
Ответ:
 (1) адаптер 
 (2) мост 
 (3) компоновщик 
 (4) декоратор 
 (5) фасад 
Упражнение 9:
Номер 1
Какой из структурных шаблонов помогает динамически добавлять новые обязанности объекту?
Ответ:
 (1) адаптер 
 (2) мост 
 (3) компоновщик 
 (4) декоратор 
 (5) заместитель 
Номер 2
Какой из структурных шаблонов описывает разбиение системы на слои?
Ответ:
 (1) адаптер 
 (2) фасад 
 (3) компоновщик 
 (4) декоратор 
 (5) заместитель 
Номер 3
Какой из структурных шаблонов обеспечивает контроль доступа к объекту путём реализации proxy-объекта?
Ответ:
 (1) адаптер 
 (2) фасад 
 (3) компоновщик 
 (4) декоратор 
 (5) заместитель 
Упражнение 10:
Номер 1
//====================== start of sample.cpp ==========================
template <class Receiver>
class MyCommand: public Command {
public:
typedef void (Receiver::* Action)();
MyCommand(Receiver r, Action a): _receiver(r), _action(a){}
void Execute();
int GetStatus();
private:
Action _action;
Receiver* _receiver;
int _last_error;
};
//====================== end of sample.cpp ==========================
]]>Какие атрибуты и методы класса MyCommand являются необходимыми для имплементации шаблона команда в файле sample.cpp?
Ответ:
 (1) Execute(); 
 (2) GetStatus(); 
 (3) _action; 
 (4) _receiver; 
 (5) _last_error; 
Номер 2
Какие возможности даёт использование поведенческий шаблон: команда?
Ответ:
 (1) инкапсулировать обмен данными между клиентом и сервером в обмен объектам 
 (2) организацию очереди исполняемых запросов 
 (3) обеспечивает доступ к содержимому агрегата без раскрытия его представления 
 (4) организовать взаимодействие большого количества объектов между собой 
Номер 3
Какие возможности даёт использование поведенческий шаблон: итератор?
Ответ:
 (1) инкапсулировать обмен данными между клиентом и сервером в обмен объектам 
 (2) организацию очереди исполняемых запросов 
 (3) обеспечивает доступ к содержимому агрегата без раскрытия его представления 
 (4) организовать взаимодействие большого количества объектов между собой 
Номер 4
Какие методы входят в минимально-необходимый состав, который должен быть имплементирован при использовании поведенческого шаблона итератор?
Ответ:
 (1) переход в начало 
 (2) переход в конец 
 (3) переход на следующий элемент 
 (4) проверка конца агрегата (контейнера) 
 (5) получение дистанции между 2-мя элементами 
 (6) получение доступа к текущему элементу 
Упражнение 11:
Номер 1
Какие возможности даёт использование поведенческий шаблон: посредник?
Ответ:
 (1) инкапсулировать обмен данными между клиентом и сервером в обмен объектам 
 (2) организация очереди исполняемых запросов 
 (3) обеспечивает доступ к содержимому агрегата без раскрытия его представления 
 (4) организовать взаимодействие большого количества объектов между собой 
 (5) построить широковещательные рассылки 
Номер 2
Какие возможности даёт использование поведенческий шаблон: наблюдатель?
Ответ:
 (1) инкапсулировать обмен данными между клиентом и сервером в обмен объектам 
 (2) организация очереди исполняемых запросов 
 (3) обеспечивает доступ к содержимому агрегата без раскрытия его представления 
 (4) организовать взаимодействие большого количества объектов между собой 
 (5) построить широковещательные рассылки 
Номер 3
Какие преимущества обеспечивает модель проталкивания данных от субъекта наблюдателю перед моделью вытягивания данных при реализации шаблона наблюдатель?
Ответ:
 (1) высокая степень повторного использования 
 (2) минимальный объём посылаемой наблюдателю информации 
 (3) высокая эффективность модели 
 (4) малая степень информированности субъекта о наблюдателе 
Номер 4
Какие особенности кода класса являются признаком необходимости использования поведенческих шаблонов: состояние, стратегия?
Ответ:
 (1) появления большого класса с большим количеством методов 
 (2) однотипные ветвления кода с похожими условиями 
 (3) вырожденный конструктор 
 (4) большое количество взаимодействий с другими объектами 
Упражнение 12:
Номер 1
Какие утверждения про поведенческий шаблон «шаблонный метод» верны?
Ответ:
 (1) используется для задания в базовом классе порядка действий, выполняемых наследниками 
 (2) выполняемые действия обязательно должны быть реализованы в классах наследниках 
 (3) применяется когда код содержит много однотипных условных ветвлений 
 (4) при проектировании базового класса, реализующего алгоритм разработчик должен решить будет он использовать «зацепки» или «примитивные операции» 
 (5) шаблон шаблонный метод эмулирует технику выбора вызываемой операции «двойную диспетчеризацию» 
Номер 2
Какие утверждения о поведенческом шаблоне «посетитель» верны?
Ответ:
 (1) шаблон «посетитель» эмулирует технику выбора вызываемой операции «двойную диспетчеризацию» 
 (2) обеспечивает организацию очереди исполняемых запросов 
 (3) бывает полезен, когда требуется выполнить операции, зависящие от типа элемента, в агрегате, содержащем объекты различных типов 
 (4) позволяет добавить новые методы обработки объектов, не трогая код самого объекта 
 (5) позволяет организовать взаимодействие большого количества объектов между собой без увеличения сложности системы 
Номер 3
Какие проблемы архитектуры позволяет решить следование закону Деметра?
Ответ:
 (1) достижение максимальной скорости выполнения при ограничениях используемых ресурсов 
 (2) достижение высокой устойчивости и надёжности системы 
 (3) достижение наименьшей связности объектов и стабильности кода при изменениях объектов 
 (4) достижение максимальной простоты архитектуры системы 
Номер 4
Какие из приведённых принципов относятся к S.O.L.I.D.?
Ответ:
 (1) любой класс должен иметь одну и только одну зону ответственности 
 (2) программные элементы должны быть открыты для расширения, но закрыты для изменения 
 (3) множество мелких интерфейсов лучше, чем единственный общий 
 (4) любой метод класса имеет право вызывать только свои методы, методы входных параметров и методы своих объектов-атрибутов и объектов-атрибутов входных параметров