2015-11-06 24 views

回答

3

包規格的從封裝體的分離是的語言,如PL/SQL設計的根本重要的部分。這是PL/SQL允許您使用封裝原則的方式。

說明書是指定包的公共部分,即,函數,過程,類型和常數應該是由其他程序單元或外部呼叫者訪問的方式。

Body不僅封裝了實現細節,還允許您創建私有函數和過程;也就是說,它們只允許被同一包中的其他函數和過程使用,並且不能被外部調用者調用。

封裝帶來了許多好處 - 包括自我記錄:如果某種方法是私人方式,那麼除非在同一個包中,否則將保證不會有任何呼叫 - 所以您可以自由地更改它,知道你的改變至少不會破壞使用該軟件包的其他系統。

軟件包可用作API;該規範將成爲設計哪些功能和程序的文檔,並打算由系統中的其他代碼調用。

+0

謝謝傑弗裏:非常有幫助的解釋 –

2

軟件包規範包含軟件包中可能在軟件包外部引用的所有公共可用元素的定義或規範。規格就像一個大的聲明部分;它不包含任何PL/SQL塊或可執行代碼。如果規範設計良好,開發人員可以從中學習使用該軟件包所需的一切。不應該有任何需要「落後」規範的接口,並查看實體的內容。

在一個包的公共和私人元素之間的區分提供了PL/SQL開發人員在他們的數據結構和程序前所未有的控制。如下面的Booch圖顯示 enter image description here 注意內部和外部的兩個標籤。外部由您編寫的所有程序組成,而這些程序不是手頭套件的一部分(外部程序)。內部由包體(內部或實現 包)組成。

這是我們可以從Booch的圖得出的結論:

  • 外部程序不能從外部越過邊界內。也就是說,外部程序可能不會引用或調用包體內定義的任何元素。它們是私密的,在包裝之外是不可見的。
  • 包裝規格中定義的那些元素(在圖中標記爲Public)橫跨內部和外部之間的邊界。這些程序可以由外部程序調用(從外部),可以被私人程序調用或引用,並且可以反過來調用或引用程序包中的任何其他元素。
  • 因此,包裝的公共元素提供了包裝內部的唯一路徑。通過這種方式,包規範可以充當整個包的控制機制。
  • 如果您發現以前的私有對象(例如模塊或光標)應該被公開,只需將該對象添加到包規範並重新編譯即可。它將在包裝外部可見。

這種解釋是oracle pl/sql programming 5th edition啓發Steven Feuerstein

+1

謝謝霍克.. :) –

相關問題