40592

Сущность объектно-ориентированного подхода

Лекция

Информатика, кибернетика и программирование

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

Русский

2013-10-17

16.76 KB

22 чел.

занятие 29

Сущность объектно-ориентированного подхода

Принципиальное различие между структурным и объектно-ориентированным подходом заключается в способе декомпозиции системы. Объектно-ориентированный подход использует объектную декомпозицию, при этом статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира. Понятие "объект" впервые было использовано около 30 лет назад в технических средствах при попытках отойти от традиционной архитектуры фон Неймана и преодолеть барьер между высоким уровнем программных абстракций и низким уровнем абстрагирования на уровне компьютеров. С объектно-ориентированной архитектурой также тесно связаны объектно-ориентированные операционные системы. Однако наиболее значительный вклад в объектный подход был внесен объектными и объектно-ориентированными языками программирования: Simula, Smalltalk, C++, Object Pascal. На объектный подход оказали влияние также развивавшиеся достаточно независимо методы моделирования баз данных, в особенности подход "сущность-связь".

Концептуальной основой объектно-ориентированного подхода является объектная модель. Основными ее элементами являются:

• абстрагирование (abstraction);

• инкапсуляция (encapsulation);

• модульность (modularity);

• иерархия (hierarchy).

Кроме основных имеются еще три дополнительных элемента, не являющихся в отличие от основных строго обязательными:

• типизация (typing),

• параллелизм (concurrency),

• устойчивость (persistence).

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

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

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

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

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

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

Устойчивость - свойство объекта существовать во времени (вне зависимости от процесса, породившего данный объект) и/или в пространстве (при перемещении объекта из адресного пространства, в котором он был создан).


 

А также другие работы, которые могут Вас заинтересовать

15276. Основи програмування мовою Асемблер 183.5 KB
  Лабораторна робота № 1 Тема: Основи програмування мовою Асемблер. Мета роботи: Вивчити функціональні можливості середовища емулятора Emu8086. Набути навичок зі складання та налагодження програм мовою асемблер з використанням середовища емулят...
15277. Вивчити програмну модель мікропроцесора і8086 153 KB
  Лабораторна робота № 2 Тема: Основи програмування мовою Асемблер. Мета роботи: Вивчити програмну модель мікропроцесора і8086. Навчитися інтерпретувати стан регістрів мікропроцесора з використанням емулятора. Засвоїти правила запису інформ
15278. Засвоїти способи адресування операндів в мікропроцесорі і8086 161 KB
  Лабораторна робота № 3 Тема: Основи програмування мовою Асемблер. Мета роботи: Засвоїти способи адресування операндів в мікропроцесорі і8086. Набути навичок з використання різних способів адресування операндів при складанні програм мовою асемблера. Ко...
15279. Команди і директиви мови Асемблер 122.5 KB
  Лабораторна робота № 4 Тема: Команди і директиви мови Асемблер. Мета роботи: Набути навичок застосування асемблерних команд передачі інформації. Засвоїти способи адресування операндів вказаних груп команд та алгоритми їх виконання.
15280. Застосування асемблерних команд з реалізації арифметичних, логічних операцій і операцій зсуву 156 KB
  Лабораторна робота № 5 Тема: Команди і директиви мови Асемблер. Мета роботи: Набути навичок застосування асемблерних команд з реалізації арифметичних логічних операцій і операцій зсуву. Засвоїти способи адресування операндів вказаних гру
15281. Застосування асемблерних команд передачі управління. Алгоритми їх виконання 110.5 KB
  Лабораторна робота № 6 Тема: Команди і директиви мови Асемблер. Мета роботи: Набути навичок застосування асемблерних команд передачі управління. Засвоїти алгоритми їх виконання. Короткі теорет
15282. Алгоритми функціонування ланцюгових команд та способи формування адреси операнда-джерела і адреси операнда-призначення 145.5 KB
  Лабораторна робота № 7 8 Тема: Команди і директиви мови Асемблер. Мета роботи: Засвоїти алгоритми функціонування ланцюгових команд та способи формування адреси операндаджерела і адреси операндапризначення за якими розташовуються ланцюго
15283. Технологія та прийоми програмування мовою Асемблер 142 KB
  Лабораторна робота № 9 Тема: Технологія та прийоми програмування мовою Асемблер. Мета роботи: Набути навичок роботи з масивами при програмуванні мовою Асемблера. Навчитися описувати одновимірні масиви в програмі; ініціювати масив; орган...
15284. Налагодження програми мовою Асемблер з оброблення двовимірних масивів 149 KB
  Налагодження програми мовою Асемблер з оброблення двовимірних масивів Лабораторна робота № 10 Тема: Технологія та прийоми програмування мовою Асемблер. Мета роботи: Набути навичок роботи з масивами при програмуванні мовою Асемблера.