Принципы объектного подхода.
Объектная модель, которая является концептуальной базой объектно-ориентированной методологии, имеет четыре главных элемента:
· абстрагирование
· ограничение доступа или инкапсуляция
· модульность
· иерархия.
Без любого из этих элементов модель не будет объектно-ориентированной. Кромеглавных имеется три дополнительных элемента:
· типизация
· параллелизм
· сохраняемость или устойчивость
Эти элементы полезны в объектной модели, но не обязательны.
Абстрагирование- это выделение таких существенных характеристик объекта, которые отличают его от всех других видов объектов и таким образом чётко определяются особенности данного объекта с точки зрения дальнейшего его рассмотрения. Абстрагирование позволяет отделить самые существенные особенности поведения от несущественных. Абстракция определяет существенные характеристики некоторого объекта, которые отличают его от всех других видов объектов и четко очерчивает концептуальную границу объекта с точки зрения наблюдателя.
Инкапсуляция- это процесс разделения элементов объекта, определяющих его устройство и поведение; инкапсуляция служит для того, чтобы изолировать контрактные обязательства абстракции от их реализации.
Модульность- это свойство системы, связанное с возможностью декомпозиции на ряд внутренне связанных, но слабо связанных между собой модулей. Модульность - это разделение программы на раздельно компилируемые фрагменты, имеющие между собой средства сообщения.
Иерархия- ранжированная (упорядоченная) система абстракций. Основными видами иерархических структур, применительно к сложным системам, является структура классов (иерархия "is -а") и структура объектов (иерархия "partof). Принцип наследования позволяет упростить выражения абстракции, делая проект менее громоздким и более выразительным.
Наследование - это такая иерархичность абстракций, в которой подклассы наследуют строение от одного или нескольких суперклассов. В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы. Суперклассы отражают наиболее общие, а подклассы более специализированные абстракции. Поэтому о наследовании говорят, как об иерархии «обобщение специализации». Различают случаи простого и множественного наследования. В первом случае подкласс может определяться только на основе одного суперкласса, во втором случае суперклассов может быть несколько. Если в языке или системе поддерживается единичное наследование классов, набор классов образует древовидную иерархию. При поддержании множественного наследования классы связаны в ориентированный граф с корнем, называемый решеткой классов.
Дополнительные элементы:
Типизация- ограничение предъявляемых классу объектов, препятствующих взаимозамене различных классов и в большинстве случаев сильно сужающих возможность такой замены. Концепция типизации строится на понятии абстрактных типов данных. Тип - точное определение свойств строения или поведения, которое присуще некоторой совокупности объекта.
Полиморфизм возникает на стыке принципов наследования и динамических связей. Это свойство является самым существенным в объектно-ориентированном программировании. Полиморфизм отличает объектно-ориентированное проектирование от более традиционных методов с использованием абстрактных типов данных.
Параллелизм.Для определенной категории задач автоматические системы реализуют обработку многих событий, происходящих одновременно. В то время как объектно-ориентированное программирование строится на абстракции, инкапсуляции и наследовании, параллелизм связан с абстрагированием процессов и синхронизацией. Объект является основой, которая объединяет обе концепции. Каждый объект (как абстракция реальности) может представлять собой отдельный поток управления (абстракцию процесса). Такой объект называется активным Параллелизм-свойство, отличающее активные объекты от пассивных. Для систем, построенных на основе объектно-ориентированного проектировании, реальность может быть представлена, как совокупность взаимодействующих объектов, часть из которых - активна.
Сохраняемость /устойчивость- это свойство объекта существовать во времени и/или пространстве, вне зависимости от процессов, породивших
Полиморфизм — взаимозаменяемость объектов с одинаковым интерфейсом. Здесь под интерфейсом понимается совокупность методов, через которые происходит взаимодействие с объектом. Несколько объектов должны иметь такой одинаковый набор методов (методов с одинаковыми именами и сигнатурами), а также эти методы должны реализовывать похожую функциональность.
Полиморфизм — это возможность использования экземпляра класса-наследника там, где требуется экземпляр базового класса. Однако, существуют языки, в которых нет выраженного понятия «наследование» или же для реализации полиморфных объектов не требуется использование наследования (например, в Perl).
К недостаткам ООП относятся некоторое снижение производительности функционирования ПО (которое, однако, по мере роста производительности компьютеров становится все менее заметным) и высокие начальные затраты.
Дата добавления: 2016-05-25; просмотров: 5099;