Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы_тооп.doc
Скачиваний:
132
Добавлен:
23.01.2018
Размер:
495.1 Кб
Скачать
  1. Наследование

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

  1. Инкапсуляция

ограничение доступа к данным, их объединение с методами, обрабатывающими их.

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

С понятием Инк тесно связано понятие сокрытия данных, а это соприкасается с понятием разделения ответственности между клиентом и сервером. Клиент не обязан знать, как реализованы те или иные методы в сервере, для него достаточно знать то, что делают эти методы и как к ним обращаться.

  1. Полиморфизм

- дает возможность создать множественное определение для операций и функций, какое именно определение будет использоваться, зависит от контекста программы. Возможность во время выполнения программы с помощью одного и того же имени выполнять разные действия или обращаться к объектам разного типа.

Абстрактный класс – абстрактный метод можно переопределять в других классах – множество форм.

Полиморфизм – один интерфейс со множеством реализаций.

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

Без полиморфизма код бы усложнился, пришлось бы использовать другие имена (плохо для 20 разных объектов)

  1. Паттерны проектирования

описывают типичные способы решения часто встречающихся проблем при проектировании программ.

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

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

Порождающие паттерны описывают способы создания объектов.

Структурные паттерны описывают схемы организации классов.

Паттерны поведения определяют типичные схемы взаимодействия классов и объектов.

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

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

Основная польза от использования шаблонов состоит в снижении сложности разработки за счёт готовых абстракций для решения целого класса проблем. Шаблон даёт решению своё имя, что облегчает коммуникацию между разработчиками, позволяя ссылаться на известные шаблоны. Таким образом, за счёт шаблонов производится унификация деталей решений: модулей, элементов проекта, — снижается количество ошибок. 

две сложности. Во-первых, слепое следование некоторому выбранному шаблону может привести к усложнению программы. Во-вторых, у разработчика может возникнуть желание попробовать некоторый шаблон в деле без особых оснований.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]