Полиморфизм и динамическое связывание 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Полиморфизм и динамическое связывание



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

template <type T>

T max (x: T, y: T) {

if (x > y)

then

return x;

else

return y;

}

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

int max (int, int) // инициализация функции max для целостного типа

int max (real, real) // инициализация функции max для действительного типа

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

Резюме.

1. Имеют место сложные специализированные приложения баз данных (САПР, АИУС, ГИС и т.д.), для которых реляционные СУБД мало пригодны или вообще не пригодны, т. к. не позволяют моделировать объекты реального мира.

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

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

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

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

5. Наследование позволяет определить один класс, как частный случай более общего класса. Эти частные случаи называются подклассами, а общие – суперклассами. Подкласс наследует все свойства своего суперкласса и дополнительно определяет свои собственные уникальные свойства. Все экземпляры подкласса также являются экземплярами суперкласса. Принцип подстановки гласит, что экземпляр подкласса всегда может использоваться любым методом или в любой конструкции, где используется экземпляр суперкласса.

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

6. В ответ на все возрастающую сложность приложений баз данных появились две «новые» модели данных: объектно-ориентированная модель данных и объектно-реляционная модель данных. Однако в отличие от РМД, фактический состав этих моделей на настоящий момент не совсем ясен. Этот этап эволюции представляет СУБД третьего поколения.

Вопросы к теме 2.

1. Опишите общие характеристики сложных приложений баз данных.

2. Поясните, почему слабость РМД и реляционных СУБД делают их непригодными для создания сложных специализированных приложений баз данных.

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

3.1. абстракция, инкапсуляция, скрытие информации;

3.2. Объекты и атрибуты;

3.3 Идентификатор объекта;

3.4. Методы и сообщения;

3.5. Классы, подклассы, суперклассы и наследование;

3.6. Перегрузка;

3.7. Полиморфизм и динамическое связывание.

 

 
Литература

 

 

1. Конолли Т, Бегг К, Страчан А. Базы данных: проектирование, реализация, сопровождение. Теория и практика, 2-е изд.: Учебное пособие М., «Вильямс»,2000-1120с

2. Дейт К., Введение в системы баз данных: 6-е издание: СПб Изд. Дом «Вильямс», 1999-848с.

 

 

Учебное пособие

 

Базы данных: перспективы развития: Курс лекций/ Г.П. Фоменко, ЮРГТУ(НПИ).-Новочеркасск, 2009.-84с.

 

Новочеркасск



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 230; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.254.231 (0.006 с.)