分佈式設計模式-事務腳本

事務腳本模式:將業務邏輯組織爲面向過程的事務腳本的集合,每種類型的請求都有一個腳本。

使用事務腳本模式設計業務邏輯

雖然我一直積極的倡導使用面向對象的方式,但在某些狀況下使用面向對象的設計方法會有一種「殺雞用牛刀」的感受,例如在開發簡單的業務邏輯時。在這種狀況下,更好的方法是編寫面向過程的代碼,並使用Martin Fowler在《Patterns of Enterprise Application Architcture》一書中提到的事務腳本模式。你能夠編寫一個稱爲事務腳本的方法來處理來自表示層的每一個請求,而不是進行任何面向對象的設計。以下圖,這種方法的一個重要特徵是實現行爲的類與存儲狀態的類是分開的。數據庫

將業務邏輯組織爲事務腳。在典型的基於事務腳本的設計中,一組類實現行爲,另外一組類負責存儲狀態,事務腳本一般被寫成沒有狀態的類,腳本訪問沒有行爲的數據類以完成持久化的任務。

使用事務腳本時,腳本一般位服務類中,在此實例中是aService類,每個服務都有一個用於請求或者系統操做的方法,這個方法實現該請求的業務邏輯。它使用數據訪問對象(DAO)訪問數據庫,例如aDao。數據對象是純數據(例如model),幾乎沒有行爲。編程

這種設計風格是高度面向過程的,僅僅依賴於面向對象編程(OOP)語言的少許功能,就比如你使用C或其餘非OOP語言編寫應用所能實現的功能。然而,在適當的時候,你不該該羞於使用面向過程的設計。這種方法適用於簡單的業務邏輯,但這每每不是實現複雜業務邏輯的好方法。設計

相關文章
相關標籤/搜索