Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ооп2.docx
Скачиваний:
8
Добавлен:
22.09.2019
Размер:
587.13 Кб
Скачать
  1. Какие существуют основные механизмы повторного использования в объектно-ориентированном программировании?

Наследование («прозрачный ящик»)

Наследование класса определяется статически на этапе компиляции

Нарушение инкапсуляции родителя для потомков

Тесная связь родителя и потомков

Нельзя изменить унаследованную от родителя реализацию во время выполнения программы

Композиция («черный ящик»)

Композиция объектов – это альтернатива наследованию класса

Для композиции требуется, чтобы объединяемые объекты имели четко определенные интерфейсы

Композиция объектов определяется динамически во время выполнения, следовательно, реализация может меняться во время выполнения

Композиция объектов в большинстве случаев предпочтительнее наследованию классов

Обобщенное программирование

  1. Классификация GoF-паттернов

  • Порождающие паттерны

Отвечают за создание объектов

  • Структурные паттерны

Организуют структуру классов (на этапе разработки) или объектов (на этапе выполнения программы)

  • Паттерны поведения

Характеризуют, как классы и объекты взаимодействуют между собой

  1. Перечислите порождающие GoF-паттерны проектирования.

  1. Фабричный метод (Factory Method)

  2. Абстрактная фабрика (Abstract Factory)

  3. Прототип (Prototype)

  4. Строитель (Builder)

  5. Одиночка (Singleton)

  1. Перечислите структурные GoF-паттерны проектирования.

  1. Адаптер (Adapter)

  2. Декоратор (Decorator)

  3. Заместитель (Proxy)

  4. Компоновщик (Composite)

  5. Мост (Bridge)

  6. Приспособленец (Flyweight)

  7. Фасад (Facade)

  1. Перечислите поведенческие GoF-паттерны проектирования.

  1. Интерпретатор (Interpreter)

  2. Итератор (Iterator)

  3. Команда (Command)

  4. Наблюдатель (Observer)

  5. Посетитель (Visitor)

  6. Посредник (Mediator)

  7. Состояние (State)

  8. Хранитель (Memento)

  9. Цепочка обязанностей (Chain of Responsibility)

  10. Шаблонный метод (Template Method)

  1. Приведите возможные отрицательные последствия использования паттернов.

Два момента:

  1. При использовании паттернов может возникнуть усложнение архитектуры, или порождение сложностей при внесении определенных изменений. Например:

- при использовании Фабричного метода - возникает дополнительный уровень подклассов

- использование Абстрактной фабрики - фиксирует набор объектов, которые можно создать. Расширение "Абстрактной фабрики" для изготовления новых объектов часто затруднительно

(некоторые отрицательные моменты можно найти в использовании почти любого паттерна)

2. Если программист не имеет достаточного опыта проектирования, он может выбирать неверные паттерны для решения задачи, или использовать их там, где их использование не было оправдано. Это опять же усложняет написание и понимание архитектуры приложения

  1. Omt, описание классов

  • Класс обозначается прямоугольником

  • В верхней части напечатано имя класса

  • Описание переменных располагается ниже описания методов

  • Можно ставить имя типа перед методом, переменной экземпляра или фактического параметра

  • Курсивом в имени обозначаются абстрактные классы (соответственно и интерфейсы) и методы

  • При описании паттернов проектирования бледным шрифтом часто обозначают клиентов, которые не входят в состав участников паттерна

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