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

Объектно-ориентированный подход

Объектный подход к разработке информационных систем включает:

  • Объектно-ориентированный анализ – методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области;

  • Объектно-ориентированное проектирование – методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а так же статической и динамической модели проектирования системы;

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

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

  • Данные, описывающие их свойства и состояния;

  • Функции, которые должны выполнять объекты;

  • Сообщения, которые могут получать объекты.

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

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

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

Объект является экземпляром класса.

Класс – тип данных, введенный разработчиком.

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

Class “Name” // тип данных, Объект - экземпляр

{

Данные; // атрибуты и свойства

Функции для работы с данными; // методы

};

Пример:

Class man

{

Ф;

И;

О;

ДАТА РОЖДЕНИЯ;

ДОМАШНИЙ АДРЕС;

ВЫВЕСТИ СОСТОЯНИЕ (); // функция

};

Man a; // man – класс, a – объект

  1. Вывести состояние

Базовые концепции ооп

  • абстрагирование – процесс введения описания класса, т.е. таких существенных характеристик некоторых будущих объектов, которые и отличают их от других видов объектов, т.е. четко определяют особенности объекта класса. Абстрагирование порождает так называемые абстрактные типы данных. Выбор существенных атрибутов зависит от предметной области поставленной задачи, например: для класса «человек» можно выделить следующие атрибуты: ФИО, дата рождения, домашний адрес. Так для системы ГАИ существенными атрибутами будут: ФИО, дата рождения, номер водительского удостоверения и т.д. А для системы «поликлиника» набор существенных атрибутов будет другой: ФИО, домашний адрес, пол, рост, вес и др.

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

Построение нового класса, наследуя его из существующего, предполагает добавление в новый класс новых компонентов:

  • данных;

  • функций.

Либо замену в новом классе наследуемой из старого класса компоненты:

  • атрибуты;

  • функции.

Наследование может быть:

  • одиночным – у производного класса только один базовый класс;

  • множественным – производный класс имеет более одного базового класса

Одиночное. Множественное.

Базовый класс

Базовый класс

Производный класс

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

Например:

Класс «человек» имеет атрибуты: ФИО, дата рождения, домашний адрес. Производный от него класс «водитель» имеет атрибуты: серия и номер водительского удостоверения, дата выдачи.

Это пример одиночного наследования и объект класса «водитель» будет обладать следующими атрибутами: ФИО, дата рождения, домашний адрес, серия и номер водительского удостоверения, дата выдачи.

Пример 2:

Имеется класс «водитель» и класс «транспортное средство» с атрибутами: марка, цвет, номер кузова, номер двигателя. На основании этих классов создадим производный класс «автомобиль» с атрибутами: государственный номер, дата регистрации. Данный пример показывает множественное наследование.

ТКР по темам: распределенные информационные системы, модель представления данных

Повторить материал к срезам

  • Инкапсуляция – объединение в пространстве класса элементов, определяющих внутреннее устройство функций для манипулирования этими элементами, которые и определяют поведение будущих объектов

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

  • Полиморфизм – возможность создания множественных определений для операций и функций. Какое определение будет использовано, зависит от контекста программного кода. Он повышает степень абстрагирования при создании программных продуктов, т.к. в этом случае задача программиста указать правильные действия, а не то, как его выполнять. Реализуется полиморфизм в С++ через механизм перегрузки функций, и через механизм перегрузки операций языка.