Скачиваний:
34
Добавлен:
10.02.2015
Размер:
75.72 Кб
Скачать

Реализация парадигм ООП в PL/SQL

Парадигмы ООП в PL/SQL

Инкапсуляция

Наследование

Полиморфизм

Ограничения в реализации

Дополнительные возможности

Приведение типов

Перегрузка операторов сравнения

Коллекции объектов

Хранение объектов в СУБД

Ссылки на объекты (OBJECT REF)

Инкапсуляция (1)

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

CREATE OR

(

FNumber

FCustomer

CONSTRUCTOR RETURN SELF

MEMBER

STATIC

)

NOT FINAL;

Атрибуты

типа

Конструкт Методор

экземпля

Статическ ий метод

PROCEDURE exportAllAccounts

CREATE OR

CONSTRUCTOR

IS

BEGIN self.FNumber self.load;

RETURN;

END;

MEMBER FUNCTION BEGIN

… … … … …

return v_xResult; END;

END;

ия

конструкт

ора

AS RESULT

Реализац ия метода

Переменные объектного типа (использование объектов)

DECLARE

xCreditAcc TAccount;

xDebetAcc TAccount;

xTransaction TTransaction;

BEGIN

xCreditAcc := new TAccount('40101810400000010801'); xDebetAcc := new TAccount('40101810400000020304'); xTransaction := new TTransaction( xDebetAcc,

xCreditAcc,

100);

xTransaction.doIt;

COMMIT;

END;

Наследование (1)

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

наследником или производным

Наследование (2)

CREATE OR REPLACE TYPE TAccount UNDER TPersistent

(

 

 

 

FNumber

VARCHAR2(20),

 

 

FCustomer TCustomer,

Тип

 

CONSTRUCTOR FUNCTION

SELF AS

RESULT,

FUNCTIONпредок RETURN

MEMBER

NUMBER,

 

 

 

STATIC

PROCEDURE exportAllAccounts

)

 

 

 

NOT FINAL;

 

 

 

Полиморфизм (1)

Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

Полиморфизм (2)

Перегрузка

CREATE OR методов TPersistent

(

 

FNumber

 

FCustomer

 

OVERRIDING MEMBER

PROCEDURE save,

OVERRIDING MEMBER

PROCEDURE remove,

 

Не

STATIC FUNCTION load(v_pId IN NUMBER) RETURN

)

финальный в

NOT FINAL;

иерархии

Соседние файлы в папке Презентации студентов