本文摘抄自《.NET企業級應用架構設計》 業務邏輯層的模式的發展歷史 歷史上,事務腳本是第一個廣泛應用的業務邏輯模式。 後來出現了基於表數據的表模塊模式,仍然屬於過程式模式,但是加入了一些面向對象思維。 在面向對象開發興起之後,出現了基於對象的業務邏輯模式,最簡單的對象模型就像是資料庫表的數據模型, ...
本文摘抄自《.NET企業級應用架構設計》
業務邏輯層的模式的發展歷史
歷史上,事務腳本是第一個廣泛應用的業務邏輯模式。
後來出現了基於表數據的表模塊模式,仍然屬於過程式模式,但是加入了一些面向對象思維。
在面向對象開發興起之後,出現了基於對象的業務邏輯模式,最簡單的對象模型就像是資料庫表的數據模型,這裡的對象就是資料庫中的記錄,並加了一些額外的方法,這種模式通常叫做活動記錄模式。
隨著業務邏輯的複雜性越大,軟體的抽象程度越高,這時就應該從領域著眼,創建一個領域驅動的對象模型,這種模式通常叫做領域模型。
事務腳本概念
業務邏輯層是一系列過程的集合,每個集合都用來處理來自於表現層的一個請求。業務邏輯層被看做是一系列的相關的操作,系統執行的每個步驟都會被分割成更小的步驟,每個步驟都用一個操作表示,叫做事務。在這個上下文中,事務是一個不可分割的邏輯操作,但這個事務與資料庫中的事務沒有關係,這個模式叫做事務腳本。
我的想法
事實上,平時採用的事物腳本模式是過程式編程,真正的面向對象編程是領域模型,而我一直認為將業務邏輯分層,創建幾個類就是面向對象編程,這真是一個莫大的諷刺啊。
事務腳本模式概述
事務腳本模式鼓勵你放棄所有的面向對象設計,將業務組件直接映射到需要的用戶操作上。該模式的關註點在於用於通過表現層所能執行的操作,併為每個操作編寫一個專門的方法。這就是事務腳本。不過數據訪問層通常被封裝到另一些組件中,並不屬於腳本的一部分。
事務腳本的優缺點
事務腳本就是一個簡單的過程式模型,簡單是事務腳本最值得一提的優勢,對於邏輯不多,時間緊迫且依賴於強大的IDE的項目,事務腳本是其理想的選擇。簡單既是事務腳本的最大優勢,同時也成為了它最大的劣勢。事務腳本有造成代碼重覆的潛質,你會很容易的得到一系列完成類似任務的事務,最終應用程式變成了一團混亂的子程式組合。當然這時,重構閃亮登場。重構可以在很大程度上緩解事務腳本天生的劣勢,不過重構也有其作用的範圍。