Опишите принципы объектно-ориентированного подхода (абстрагирования, ограничения доступа, модульности, иерархии, типизации, параллелизма и устойчивости) при построении объектной системы
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

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

Выделяют целый спектр абстракций: абстракция сущности, поведения, абстрак­ция виртуальной машины, произвольная абстракция.

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

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

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

Модульность - это свойство системы, связанное с возможностью декомпозиции на ряд внутренне связанных, но слабо связанных между собой модулей. В языке C++ под модулями понимается раздельно компилируемые файлы.

Модульность - это разделение программы на раздельно компилируемые фраг­менты, имеющие между собой средства сообщения. Традиционным в C++ является помещение интерфейсной части модулей в отдельные файлы с расширением .h.

Иерархия - ранжированная (упорядоченная) система абстракций. Основными видами иерархических структур, применительно к сложным системам, является структура классов (иерархия "is -а") и структура объектов (иерархия "part of”). Прин­цип наследования позволяет упростить выражения абстракции, делая проект менее громоздким и более выразительным.

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

Дополнительные элементы:

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

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

Сохраняемость /устойчивость - это свойство объекта существовать во вре­мени и/или пространстве, вне зависимости от процессов, породивших данный объ­ект. Выде­ляют следующие виды объектов, которые обладают различной степенью со­храняе­мости или устойчивости:

· Промежуточные результаты вычисления выражений.

· Локальные переменные вызова процедур.

· Собственные переменные (глобальные).

· Данные, сохраняющиеся между вызовами основной программы.

· Данные остающиеся без изменений в различных версиях программы.

· Данные, которые переживают создавшую их программу.

Дата: 2019-12-10, просмотров: 255.