架構:領域結構組織模式

領域結構組織分為三種:事務腳本模式、領域模式和表結構模式。

事務腳本模式

事務腳本模式通常是按照接口的行為而構建的,每個用戶的操作都對應一組處理過程。在這種模式下,邏輯層接收到表示層傳遞下來的參數,通過一系列的處理,將數據保存到數據庫,並從數據庫獲取一些數據加工處理之後返回給表示層。在處理過程中,還可能需要組裝其他模塊提供的接口。事務腳本模式非常類似腳本的執行,即接收輸入,經過一系列的處理再輸出結果。這是一種面向過程的模式。在設計時,會將通用的過程抽取出來形成公共調用模塊。這種模式的優點是:

1.簡單、易理解。這種模式是人人都懂的模式,在實施時對開發人員的要求比較低。

2.具有天然的隔離性。每個用戶操作都對應一組處理過程,這些操作都被限定在了當前操作的上下文中。

這種模式的缺點也非常明顯:

1.沒有辦法應對複雜場景。這種模式相當於在上帝視角做設計,需要把處理全部過程放入到一個流程中。當場景複雜時,架構往往會變得非常混亂。

2.有時很難抽取公共處理過程,造成大量重複代碼。在這種模式中很容易遇到有些代碼邏輯非常相似,可是又有些不同,在抽取公共方法的時候很費力。

3.不具有靈活的擴展性。

領域模型是面向對象的模式

它將邏輯拆分到了不同的對象中,在策略模式的驅動下使這些對象相互作用。面向對象是一種更自然的認識世界的方法。與事務腳本模式的顯著區別是,領域模型是一些對象相互作從而影響用戶操作,而事務腳本模式是通過一組處理過程響應用戶的操作。大型複雜軟件都是基於領域模型進行開發的。

這種模式的優點是:

1.能夠應對複雜的業務場景。在領域模型中,問題域被劃分成不同的限界上下文。在分析問題時,使用通用語言在當前限界上下文中進行分析。小的限界上下文降低了問題的複雜度。

2.高靈活性。領域模型都是高內聚低耦的,能夠更加容易的應對變化。

3.抓住問題本質。通過領域模型能夠構建行業軟件。

這種模式的缺點是:

1.過於複雜,對研發人員要求很高。

2.需要領域專家的參與,不然很難得到正確的領域模型。

表結構模式

表結構模式是事務腳本模式和領域模式的折中方案。這種模式,將表結構映射成對象,並基於這些對象進行設計。這些對象要比領域模式中的對象更加單薄,而且它們都來自於數據表。

在設計過程中,可以根據問題的複雜度、開發人員的能力、開發軟件的後續發展等從中選擇模式。


分享到:


相關文章: