国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

彌合對象、關系之間的鴻溝(1/10)

tianhang / 2465人閱讀

摘要:關鍵字對象關系映射現代的應用程序常常是使用兩種截然不同的技術構建而成業務邏輯部分使用面向對象編程,數據存儲使用關系型數據庫。對象關系映射則是兩者之間的橋梁,它允許應用程序以面向對象的方式訪問關系數據。

O/RM技術可以簡化數據訪問,但也需要注意到引入這個新的抽象層來的挑戰。

關鍵字:對象-關系映射

  現代的應用程序常常是使用兩種截然不同的技術構建而成:業務邏輯部分使用面向對象編程,數據存儲使用關系型數據庫。面向對象編程是實現復雜的系統的一個關鍵技術,它提供的好處包括可重用性、健壯性和可維護性。關系型數據庫是保存數據的倉庫。O/RM(對象關系映射)則是兩者之間的橋梁,它允許應用程序以面向對象的方式訪問關系數據。?

  O/RM是對象持久化的一個專業化的一般概念。IBM研究員格雷迪·布赫在他的書《面向對象的分析與應用設計》中,將“持久性”定義為“在程序生命周期之外的數據”,是對象模型1中的次要元素。然而,在現代應用程序中,貢獻在持久化上的工作量,有時可以主宰一個項目的成本,而使用O/RM工具,可以顯著降低成本。

  有一些其他技術可以用于從面向對象的程序訪問關系型數據,但這些技術一般不利用編程語言的對象模型特性。要充分利用對象模型的特性,數據庫訪問技術需要支持信息隱藏、關注點分離、繼承、變化檢測、唯一性保持和數據庫獨立性。?

  關注點分離是將一個程序分為一些邏輯部分的過程,這些部分有很少或根本沒有重疊。在數據庫編程中有幾部分應分開:1)業務方法中查找和操作領域對象的方法;2)領域對象中可能會導致內部狀態的變化的方法和可能會調用相關聯的對象方法的方法;3)生成的數據庫命令中對行和列執行插入,查詢,更新,和刪除的;4)以及用于數據庫事務劃分的方法。

  信息隱藏是關注點分離的一個實現策略,此策略根據接口定義的行為實現特定的類,以降低復雜性和成本。類實現的行為要和調用者的行為分開。改變一方的行為并不一定需要也改變另一方。

  繼承允許代碼的重用,一些相關聯的類中共同的行為只被定義一次,具有唯一性的行為只在類之間的行為不同的地方實現。如此,一個類的行為和子類或父類(超類)的行為相較,可能是相同或不同的,并且此行為獨立于調用者的行為。

  變化檢測在一個數據庫事務中一直跟蹤領域對象的變化,所以在事務結束時,更改將應用到數據庫。?

  唯一性保持是數據庫交互中的一個屬性,在交互中一個獨立領域實例對應一個數據庫行,而不管用戶是如何獲得對象的:通過查詢數據庫,從一個實例的引用導航到另一個,或通過提供其首要識別符找到一個確定的領域實例。假若沒有唯一性保持,對一個領域實例進行的更改將不會被其他代表同一數據庫行的領域實例看到,這可能會導致數據庫損壞。?

  數據庫獨立性,允許使用一個共同的API和領域模型操作各種數據庫而不改變數據庫的應用程序視圖。

  最早用于訪問關系數據庫的技術(現在仍然非常流行),使用許多API傳輸SQL語句到服務器,并把執行語句的結果返回給應用程序。這會留給應用程序來決定,是直接使用結果還是創建數據結構來表示查詢的結果,并復制查詢結果給這些數據結構。

  直接模式化的查詢結果所用的的數據結構,無法模型化數據庫中存在的關系;因此,實例之間的關聯沒有被數據結構充分描述。使用這種類型訪問的例子包括ODBC(開放數據庫連接)接口和JDBC(Java數據庫連接)接口。這些接口允許有限的關注分離,但更多情況下是業務邏輯與數據庫編程混合在一起。他們不支持信息隱藏,繼承,變化檢測,唯一性保持或數據庫獨立性。

  更強大的技術是在其接口中提供一些方法將查詢結果復制到用戶指定的數據結構。用戶提供所有注釋過的SQL語句,使它們可以對應數據結構。用戶創建的SQL語句包括所有的查詢,加上插入,更新和刪除。這些技術處理很多容易出錯和耗費時間的工作以分析查詢結果,但仍然給用戶留下許多艱巨的任務。以這種風格訪問的一個例子是iBATIS,它支持信息隱藏和有限的關注分離,但不支持繼承,變化檢測,唯一性保持或數據庫獨立性。

  使用O/RM,存儲在關系數據庫中的數據將作為本地對象編程語言中的對象表示給應用程序。程序員映射領域對象模型類到關系表,并使用一個由持久性提供程序實現了的API來訪問數據庫。對數據庫的查詢表達為領域對象模型的方式。提供程序直接從領域模型生成SQL語句。馬丁·福勒稱這種方法DataMapper.2

  O/RM技術和產品在許多面向對象的語言中可用,包括Java,C++,C#,Python,Smalltalk,Ruby和Groovy。O/RM所用的技術和編程范式適用于許多支持這些語言的產品。(在這篇文章中,例子使用Java)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/17434.html

相關文章

  • 彌合對象關系之間鴻溝(2/10)

    摘要:使用標準的持久性的一個優點是它允許項目作出晚部署項目數據庫和持久性提供程序的決定。映射通常是需要聲明的,表示領域對象模型與關系模式模型之間關聯的映射在應用程序運行之前已經定義。 O/RM的架構   從應用程序的視角看,O/RM有兩個主要部分:持久性API和領域類。在Java中,API通常是Java社區流程的標準之一 ---Java持久性API,企業JavaBeans或Java數據對象...

    sherlock221 評論0 收藏0
  • 彌合對象關系之間鴻溝(2/10)

    摘要:使用標準的持久性的一個優點是它允許項目作出晚部署項目數據庫和持久性提供程序的決定。映射通常是需要聲明的,表示領域對象模型與關系模式模型之間關聯的映射在應用程序運行之前已經定義。 O/RM的架構   從應用程序的視角看,O/RM有兩個主要部分:持久性API和領域類。在Java中,API通常是Java社區流程的標準之一 ---Java持久性API,企業JavaBeans或Java數據對象...

    golden_hamster 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<