Дополнительно: Формы наследования



1.Порождение подклассов для специализации – полностью выполняется принцип подстановки. Существует различие между понятиями «тип» и «класс»: 2 класса принадлежат одному типу, если они реализуют один и тот же интерфейс.

2.Порождение класса для спецификации. Родительский класс – абстрактный, подклассы должны обеспечить реализацию поведения, заложенную в суперклассе.

3.Порождение с целью конструирования. Подкласс наследует структуру и поведение родительского класса, но не является его подтипом, при этом не поддерживается принцип подстановки.

4.Порождение классов для обобщения. Подкласс является более общим, чем суперкласс.

5.Порождение классов для расширения. Добавление структуры и поведения класса.

6.Порождение классов для ограничения. Возможности подкласса ограничены, по сравнению с родительским классом.

7.Порождение классов для варьирования. Дочерний и родительский класс можно поменять местами в иерархии наследования.

8.Порождение классов для комбинирования. Множественное наследование.


Шаблоны проектирования

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

В общем случае паттерн состоит из четырех основных элементов:

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

2. Задача. Описание того, когда следует применять паттерн. Необходимо сформулировать задачу и ее контекст. Может описываться конкретная проблема проектирования. Иногда отмечается, какие структуры классов или объектов свидетельствуют о негибком дизайне. Также может включаться перечень условий, при выполнении которых имеет смысл применять данный паттерн.

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

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

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

Таблица 1.Пространство паттернов проектирования

По целям паттерны делятся на:

- Порождающие. Описывают ЧТО создается, КЕМ создается, КАК создается и КОГДА создается. Локализуют сведения об особенностях создаваемого объекта и процедуре создания.

- Структурные.Описывают как составлять сложные структуры из классов и объектов с определенными свойствами.

- Шаблоны поведения.Описывают каким образом можно организовать и изменять поведение объектов

Уровень паттерна говорит о том, к чему обычно применяется паттерн: к объектам или классам.

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

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

 


Дата добавления: 2018-06-01; просмотров: 230; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!