Пакеты PL/SQL и объектные типы - в каких случаях использовать?

объектные типы и пакеты PL/SQL что лучше?Пакеты PL/SQL представляют собой контейнеры, объединяющие данные и элементы кода. Объ­ектные типы тоже представляют собой контейнеры, объединяющие данные и элементы кода. Нужны ли два типа контейнеров, не дублируют ли они функции друг друга? Не вытесняются ли пакеты объектными типами, особенно после того, как в Oracle появи­лась поддержка наследования? И если нет, то в каких случаях следует использовать объектные типы, а в каких — пакеты PL/SQL?

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

  •  Объектный тип — это шаблон данных, на основе которого можно создавать любое количество экземпляров типа (объектов). Каждый экземпляр имеет полный набор атрибутов (данных) и методов (процедур и функций). Экземпляры объектных типов могут храниться в базе данных. Пакет же является самостоятельной структурой, по­добной статическому объектному типу, и создавать его экземпляры нельзя.
  •  Объектные типы поддерживают наследование. Это означает, что можно объявить объектный подтип, который унаследует все атрибуты и методы супертипа. У пакетов концепция иерархии и наследования не существует. Подробнее об объектной архитектуре рассказывается в главе 26.
  •  Пакеты позволяют создавать приватные, скрытые данные и программы. Объектные типы не поддерживают скрытых методов и атрибутов — все их компоненты объявля­ются как общие и являются общедоступными (хотя реализация методов скрывается в теле пакета).

Так когда же следует использовать объектные типы, а когда — пакеты PL/SQL? В настоящее время лишь немногие разработчики используют объектные типы и объектно-реляционную модель Oracle. Для большинства пакеты все еще остаются основными строительными блоками приложений PL/SQL.

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


 

Вас заинтересует / Intresting for you:

Встроенные методы коллекций PL...
Встроенные методы коллекций PL... 14737 просмотров sepia Tue, 29 Oct 2019, 09:54:01
Управление приложениями PL/SQL...
Управление приложениями PL/SQL... 4633 просмотров Stas Belkov Thu, 16 Jul 2020, 06:20:48
Основы языка PL/SQL: использов...
Основы языка PL/SQL: использов... 4693 просмотров Ирина Светлова Tue, 06 Feb 2018, 14:04:03
Программирование динамического...
Программирование динамического... 4875 просмотров Максим Николенко Sun, 09 Sep 2018, 06:56:23
Войдите чтобы комментировать