Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TSPP.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
516.51 Кб
Скачать

Классы. Характеристики классов. Виды отношений между классами.

Понятия объекта и класса тесно связаны, но существует важное отличие между этими понятиями.

Класс – это абстракция существенных характеристик объекта.

Класс – это описание множества объектов, которые разделяют одинаковые свойства, операции, отношения, семантика. Любой объект – просто экземпляр класса.

Как показано на рисунке, различают внутреннее представление класса(реализацию) и внешнее представление класса(интерфейс).

Класс

интерфейс

части

Публичная

Защищенная

Приватная

Реализация

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

  1. Публичную (public), объявление которой доступно всем клиентам.

  2. Защищенную (protected) – объявление которой доступно только самому классу, подклассам и друзьям.

  3. Частный (private) – объявление доступно только классам и его друзьям.

Другом класса называют класс, который имеет доступ ко всем частям этого класса. Реализация класса описывает секреты поведения класса. Она включает реализацию всех операций, определенных в интерфейсе класса.

Виды отношений между классами.

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

  1. Ассоциация – фиксирует структурные отношения, связи между экземплярами классов.

  2. Зависимость – отображает влияние одного класса на другой.

  3. Обобщение-специализация – «is a»-отношение.

  4. Целое-часть – «part of».

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

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

Наследование – наиболее популярный вид отношения обобщения-специализация.

Альтернативой наследованию является делегирование. При делегировании объекты делегируют свое поведение с родственным объектом, при этом классы становятся не нужны.

Агрегация обеспечивает отношение целое-часть, объявленное для экземпляров класса.

Зависимость – часто представляется в виде частной формы – использование, которое фиксирует отношение между клиентом, который просит услугу и сервером, который предоставляет её.

Конкретизация выражает другую разновидность отношения обобщения-специализация, употребляется в таких языках, как ADO95, C++, Eiphel. Отношения мета-классов поддерживаются в языках Smalltalk и CLOS.

Мета-класс – это класс классов, понятие, которое позволяет вести себя с классами как с объектами.

Реализация определяет отношение, при котором класс-приниматель обеспечивает собственную реализацию интерфейса другого класса источника. Другим словами, тут идет речь про наследование интерфейса. «Скрещивание» отношений зависимости и обобщения-специализации.

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