Asp.net設計模式筆記之三:商務邏輯層的組織

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   strong   

本章內容要點:

1.Transaction Script模式組織商務邏輯

2.Active Record模式和Castle Windsor來組織商務邏輯

3.Domain Model模式來組織商務邏輯

4.Anemic Model模式和Domain Model 來組織商務邏輯的差異

5.理解領域驅動設計DDD以及如何運用它讓自己專註於商務邏輯而不是基礎設施關注點

 

並非所有的應用程式都是一樣的,也並非所有的應用程式都需要複雜的體繫結構來封裝系統的商務邏輯。作為開發人員,重要的是要理解所有領域邏輯模式的優缺點,這樣才能設計出最合適的模式。

 

Transaction Script

這個我就不費過多的口舌了。完全是面向過程式的寫法。所以是最容易理解,掌握和運用的模式。通常的做法是為每隔業務事務建立一個單獨的方法,並將它們組合起來放入某種靜態管理程式或服務類。每個過程都包含了完成業務事務所需要的所有的商務邏輯,包括工作流程,商務規則和資料庫持久化驗證檢查。

其優勢是容易理解並上手。

其劣勢是一旦程式變大或者商務邏輯變得複雜時,方法的數目變多,從而形成一個充斥著功能交疊的細粒度方法的無用API。代碼將會很快變得笨重且不可維護。

由於這種方式比較簡單,我們無須給出樣本。

 

Active Record

Active Record模式是一種流行的模式,尤其在底層資料庫模型匹配業務模型時,它特別有效。通常,資料庫中的每張表都對應一個業務對象。業務對象表示表中的一行,並且包含資料、行為以及持久化該對象的工具,此外還有添加新執行個體和尋找對象集合所需的方法。

在Active Record模式中,每隔業務對象均負責自己的持久化和相關的商務邏輯。

Active Record模式非常適用於在資料模型和業務模型之間具有一對一映射關係的簡單應用程式,如部落格或論壇引擎。如果已經有資料庫模型或者希望採用“資料優先”的方法來構建應用程式,這也是一個可用的好模式。因為業務對象與資料庫中的表具有一對一映射關係,而且均具有相同的建立,讀取,更新和刪除方法,所以可以使用代碼產生工具自動產生業務模型。與Transaction Script模式一樣,Active Record模式也非常簡單並且易於掌握。

Active Record模式隨著基於資料庫的Web應用程式而流行,其中一個典型就是結合了MVC模式和Active Record ORM的Ruby on Rails架構。在.net領域,構建在NHibernate之上的Castle ActiveRecord項目是最流行的開放原始碼Active Record架構之一。以下將通過構建一個簡單的部落格網站(部落格網站只包含少量的商務邏輯,因此在業務對象和資料模型之間存在較好的相關性),來展示其具體用法。

聯繫我們

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