Главная / Программирование /
Основы объектно-ориентированного проектирования / Тест 7
Основы объектно-ориентированного проектирования - тест 7
Упражнение 1:
Номер 1
Отметьте истинные высказывания
Ответ:
 (1) разработку ведите снизу-вверх: постройте прочный базис, затем применяйте его к специальным случаям 
 (2) не пытайтесь сделать классы с самого начала общими, делайте их конкретными 
 (3) априорная проверка: до выполнения операции проверяйте возможность ее применения 
 (4) все использования наследования должны принадлежать одной из категорий в таксономии 
Номер 2
Отметьте истинные высказывания
Ответ:
 (1) не пытайтесь сделать классы с самого начала настолько автономными, насколько это возможно – учитывайте все зависимости 
 (2) клиент бывает ссылочный и развернутый 
 (3) отложенные классы описывают реализацию 
 (4) классы поведения: задают общее поведение 
Номер 3
Отметьте истинные высказывания
Ответ:
 (1) активные структуры данных имеют состояние и могут рассматриваться как абстрактные машины 
 (2) обратимость: извлекая пользу из уроков реализации, не корректируйте функциональную спецификацию 
 (3) если компонент не согласуется с абстракцией данных, но потенциально полезен, - добавьте его 
 (4) в качестве аргументов используйте только операнды 
Упражнение 2:
Номер 1
Отметьте истинные высказывания
Ответ:
 (1) задание статуса доступа компонентов: закрытых или экспортируемых – подвержено частым изменениям в ходе разработки 
 (2) динамическое связывание: влечет явный разбор случаев 
 (3) используйте выборочный экспорт для группы тесно связанных классов 
 (4) организованный отказ: если в конце выполняется предложение rescue, не забудьте восстановить инвариант 
Номер 2
Отметьте истинные высказывания
Ответ:
 (1) для каждой команды, устанавливающей статус, обеспечьте запрос, возвращающий статус 
 (2) когда все рушится, не используйте обработку исключений 
 (3) доступ к родительской версии при переопределении обеспечивает precursor 
 (4) атрибут можно переопределить как функцию 
Номер 3
Отметьте истинные высказывания
Ответ:
 (1) помещайте в класс минимум информации 
 (2) обобщение: из специализированных классов создавайте повторно используемые классы. Абстрагирование, факторизация – дорога к общности 
 (3) делайте предусловие настолько сильным, насколько это возможно 
 (4) обратимость: извлекайте пользу из уроков реализации и корректируйте функциональную спецификацию 
Упражнение 3:
Номер 1
Отметьте истинные высказывания
Ответ:
 (1) полиморфные структуры данных: наследование и универсальность позволяют комбинировать в нужных пропорциях подобие и вариации 
 (2) пытайтесь сделать классы с самого начала настолько автономными, насколько это возможно 
 (3) классы поведения являются эффективными 
 (4) повторение выполнения: испробуйте другой алгоритм или (стратегия надежды) тот же повторно. Сохраните информацию в атрибутах или локальных сущностях, инициализируемых в момент вызова, но не при повторах retry 
Номер 2
Отметьте истинные высказывания
Ответ:
 (1) обобщение: оставьте создание повторно используемых классов на долю экспертов – дорога к общности – не ваша дорога 
 (2) системы создаются только из классов 
 (3) при повторном объявлении допустимо ослабление предусловий, позволяющее расширить область применения подпрограммы 
 (4) для запросов без аргументов должна быть видима разница в их реализации – атрибутом или функцией 
Номер 3
Отметьте истинные высказывания
Ответ:
 (1) пытайтесь сделать классы с самого начала настолько общими, насколько это возможно 
 (2) используйте технику описателей для разделения абстрактного интерфейса и реализации для различных платформ 
 (3) бесшовность: применяйте различающиеся приемы и инструментарий на этапах анализа, проектирования, разработки и сопровождения 
 (4) задавайте заголовочные комментарии тщательно и согласованно; они являются частью официального интерфейса 
Упражнение 4:
Номер 1
Отметьте истинные высказывания
Ответ:
 (1) отложенный компонент родителя сохраняйте отложенным 
 (2) предусловие связывает клиента, постусловие поставщика 
 (3) повторные объявления не сохраняют семантику 
 (4) предлагаемая таксономия наследования включает 3 категории, распадающиеся на 12 видов 
Номер 2
Отметьте истинные высказывания
Ответ:
 (1) для ссылочного клиента справедливо отношение "является", для развернутого – "имеет" 
 (2) динамическое связывание на полиморфных структурах данных: применяет к каждому элементу структуры операцию, соответствующую элементу 
 (3) обновление не объектного ПО: не пытайтесь одеть в новые одежды старую систему 
 (4) индексируйте классы 
Номер 3
Отметьте истинные высказывания
Ответ:
 (1) системы создаются только из классов и глобальной информации 
 (2) бесшовность: применяйте согласованные приемы и инструментарий на этапах анализа, проектирования, разработки и сопровождения 
 (3) не усердствуйте в усилении постусловий, – оставьте возможность их усиления потомками 
 (4) проектируйте с учетом изменений и повторного использования 
Упражнение 5:
Номер 1
Отметьте истинные высказывания
Ответ:
 (1) отложенные классы описывают категории высокого уровня 
 (2) обновление необъектного ПО: инкапсулируйте абстракции в классы 
 (3) при браке по расчету: реализация сочетается с абстракцией 
 (4) нельзя переопределить сразу несколько эффективных компонентов 
Номер 2
Отметьте истинные высказывания
Ответ:
 (1) отношение "является" иногда следует реализовать как клиентское 
 (2) используйте многослойную архитектуру для разделения абстрактного интерфейса и реализации для различных платформ 
 (3) минимизируйте заголовочные комментарии; они являются частью официального интерфейса 
 (4) вводите понятие устарелых (obsolete) компонентов и классов для облегчения перехода к новой версии 
Номер 3
Отметьте истинные высказывания
Ответ:
 (1) отложенные классы служат средством анализа и проектирования, описывая абстракции без ссылок на реализацию 
 (2) разработку ведите сверху-вниз: постройте главную функцию, затем применяйте к ней декомпозицию 
 (3) апостериорная проверка: выполните операцию, затем запросите атрибут для выяснения того, как она сработала 
 (4) функция не должна иметь конкретный побочный эффект