事務指令碼與領域建模

來源:互聯網
上載者:User

目前項目架構的兩類常用方式,就是事務指令碼和領域建模。

 

事務指令碼,其實並沒有架構,只是利用了已有的成熟技術平台提供的天然架構,又或者說像.net,j2ee等天然提供了事務指令碼及其實現的環境。

事務指令碼,就是直接直接開發sql及gui,在gui或公用類中通過sql直接操作資料庫。

領域建模,就是提高領域層設計,將持久儲存層局限在一部分必須儲存的資料,同時支援gui的替換和擴充。領域建模或者說是OO帶來的產物。如果以此來看,那麼事務指令碼更傾向於基於OO技術架構的面向過程開發。而領域建模則更好的利用了OO的思想。

對於事務指令碼,雖說有面向過程之“嫌疑”,但是在某些情境下是不可缺少的,比如對資料庫操作的效能要求比較高,或者客戶需要的資料與資料庫比較近或者資料比較大,那麼在架構設計中,有必要拉近GUI和DB的距離,sql語句天然與DB比較近,尤其在一些報表統計的需求中。

所以sql server提出了olap/reporting service技術,這就是從資料庫層面來挖掘建模的空間,讓資料庫層尤其是OLAP能夠做更多的事情,來彌補領域邏輯層的低效率。

目前OLAP/DATA WAREHOUSE技術發展迅速,這也主要是基於面對大資料時資料統計中領域建模的弱點而提出的。

 

還有一個模式叫做“表模組”,這應該是對資料庫表進行強命名的做法,例如使用OleDb,以及一個強型別的DataSet來對資料庫表做CRUD處理。這種思路,除了在一些特殊的情境下需要使用外,一般來講這種思路已很少使用。

 

如果OODB出來以後,事務指令碼將不會再使用了,但是表模組將會以一種新的形勢出現,或許能夠代替當前的事務指令碼,而在一些小型的應用中“死灰複燃”。

OODB出現之後,相當於將ORM在DB層做了實現,當然也增加了緩衝,提升了存取效率。同時在領域建模過程中也省卻基於關係型資料庫的考慮。同時領域建模將包括OODB的設計。

而目前的開發還是基於關係型資料庫,所以在做領域建模後,會面臨將持久對象寫入資料庫的需要,在領域模型和關係型資料庫之間,需要使用ORM。而在我的一個架構中,我還加入了Convertor層來處理領域模型與關聯式模式/持久類對象之間的相互轉換。真的是相當麻煩。因為目前ORM的持久類設計是受到限制的,是難以完全融入領域建模之中的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.