Oracle中介面的概念

來源:互聯網
上載者:User

在物件導向的程式設計語言中,一直強調面對介面或抽象類別編程,而介面也一直是各大設計模式重點研究的對象,實際證明介面確實給程式設計和開發帶來很大的靈活性。而介面這一概念源於編程,嚴格意義上說應該來自於物件導向的語言,因此一些設計模式的教材舉例子的時候都用了物件導向的語言作為講解的工具。但其實在資料庫中也有類似介面的概念,尤其在物件導向的Oracle資料庫中。

這裡的介面只能說類似於物件導向語言的介面,因為在Oracle中不存在介面資料類型或多個實現了同一介面的類型。這種介面的具體實現形式,我想開發過Oracle函數或者過程的人員都能想到,那就是Oracle中函數(過程)定義與函數(過程)體分離的,函數(過程)的定義相當於對介面的定義,但具體的實現是通過函數(過程)體來實現。這裡跟一般介面的使用方式是一樣的,只不過在程式設計語言中看作是類型而已。不過Oracle的這種方式中不能存在多個實現了同一介面的函數(過程)體,因為實現的函數(過程)名稱與定義的是一樣的。

而這種函數(過程)定於與實現的應用,平時更多隻是在包中開發,很少提升到介面這個層面。最近在看Oracle的使用者管理中看到了這一應用的體現。在使用者密碼管理中,Oracle用到了叫profile的檔案對密碼進行管理,如果用預設的profile檔案進行管理,不能對密碼的強度,規範性等進行校正,就比如dotnet中對密碼的校正方式。Oracle伺服器就提供了一個複雜密碼的校正函數,以一個定義好的函數verify_function作為校正函數,oracle自身也提供了這個函數的實現方式,好比dotnet中的策略模式的實現,都提供了預設的方式。但Oracle中預設的校正函數仍滿足不了要求,這時候介面的作用就體現了。這種定義與實現分離的方式,讓使用者可以定於自己的校正函數,使用者只需要關心自己的函數。至於調用,那是Oracle伺服器的事了。類似於這種介面式的管理,增強了資料庫管理的靈活性。

以上只是個人的理解,繼續學習中。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.