Oracle plsql包中的规范-为什么需要

Oracle plsql包中的规范-为什么需要,oracle,plsql,Oracle,Plsql,有人能告诉我,为什么我们在oracle PL/SQL中需要封装规范吗。 无论如何,包体包含所有规范信息。包规范与包体的分离是PL/SQL等语言设计的基本重要部分。这是PL/SQL允许您使用封装原则的方式 规范是指定包的公共部分的方式,即其他程序单元或外部调用者可以访问的函数、过程、类型和常量 主体不仅封装了实现细节,还允许您创建私有的函数和过程;也就是说,它们只允许被同一包中的其他函数和过程使用,不能被外部调用方调用 封装带来了许多好处——包括自我文档:如果一个方法是私有的,那么可以保证除了在同

有人能告诉我,为什么我们在oracle PL/SQL中需要封装规范吗。
无论如何,包体包含所有规范信息。

包规范与包体的分离是PL/SQL等语言设计的基本重要部分。这是PL/SQL允许您使用封装原则的方式

规范是指定包的公共部分的方式,即其他程序单元或外部调用者可以访问的函数、过程、类型和常量

主体不仅封装了实现细节,还允许您创建私有的函数和过程;也就是说,它们只允许被同一包中的其他函数和过程使用,不能被外部调用方调用

封装带来了许多好处——包括自我文档:如果一个方法是私有的,那么可以保证除了在同一个包中之外不会有对它的调用——因此您可以自由地更改它,因为您知道您的更改至少不会破坏使用该包的任何其他系统


包作为API是有用的;然后,该规范成为系统中其他代码设计和调用的功能和过程的文档。

包规范包含包中所有可在包外引用的公开元素的定义或规范。 规范就像一个大的声明部分;它不包含任何PL/SQL块或可执行代码。如果规范设计良好,开发人员可以从中学习使用该包所需的一切。永远不应该有任何需要“隐藏”规范的接口并查看主体中的实现

包中公共和私有元素之间的区别使PL/SQL开发人员能够前所未有地控制其数据结构和程序。如下图所示 请注意内部和外部的两个标签。external由您编写的所有不属于手头软件包的程序(外部程序)组成。内部由包体(包的内部或实现)组成 包装)

以下是我们可以从Booch图中得出的结论:

  • 外部程序不能从外到内跨越边界。也就是说,外部程序不能引用或调用包体内部定义的任何元素。它们是私有的,在包外是看不见的
  • 包装规范中定义的那些元素(图中标记为Public)跨越了内部和外部之间的边界。这些程序可以由外部程序(从外部)调用,可以由私有程序调用或引用,也可以调用或引用包中的任何其他元素
  • 因此,包的公共元素提供了到包内部的唯一路径。这样,包规范就充当了整个包的控制机制
  • 如果您发现以前的私有对象(如模块或游标)应该公开,只需将该对象添加到包规范中并重新编译即可。然后,它将在包的外部可见
这一解释的灵感来自