正文

業(yè)務(wù)邏輯層:組織(30)

ASP.NET設(shè)計(jì)模式 作者:(美)Scott Millett


本章只是簡單地介紹了DDD,在案例研究中還將復(fù)習(xí),屆時(shí)還將介紹用戶的故事,以方便構(gòu)建需求并理解正在處理的領(lǐng)域。為了更深入地研究該方法學(xué),推薦閱讀下面這兩本著作:

●  Domain-Driven Design: Tackling Complexity in the Heart of Software(Addison-Wesley,2003),Eric Evans著

●  Applying Domain-Driven Design and Patterns: Using .Net With Examples in C# and .NET (Addison-Wesley,2006),Jimmy Nilsson著

4.2  小結(jié)

本章介紹了一些流行的、經(jīng)過驗(yàn)證的業(yè)務(wù)邏輯組織模式。下面是主要的4種方法。

●  Transaction Script:如果應(yīng)用程序較小,業(yè)務(wù)邏輯很少甚至沒有業(yè)務(wù)邏輯,則Transaction Script模式就是建立簡單解決方案的很好選擇,接手代碼的開發(fā)人員容易理解它。

●  Active Record:如果業(yè)務(wù)層只是位于數(shù)據(jù)庫之上的一個(gè)瘦層,則Active Record是很好的模式選擇。有許多代碼生成工具能夠自動根據(jù)數(shù)據(jù)庫模式創(chuàng)建業(yè)務(wù)對象,而且手工創(chuàng)建這些對象也并非難事。

●  Domain Model:Domain Model非常適于為棘手的、豐富的、復(fù)雜的業(yè)務(wù)領(lǐng)域建模。它是一種涉及創(chuàng)建真實(shí)業(yè)務(wù)領(lǐng)域抽象模型的純粹的面向?qū)ο蠓椒?,在處理?fù)雜邏輯和工作流時(shí)非常有用。領(lǐng)域模型是持久化透明的,它依靠映射器類和Repository模式來持久化和檢索業(yè)務(wù)實(shí)體。

●  Anemic Model:Anemic Model模式是Domain Model的反模式。粗略一看它們一樣,但進(jìn)一步研究之后發(fā)現(xiàn),表示正在建模領(lǐng)域的領(lǐng)域?qū)ο笾皇菦]有行為的數(shù)據(jù)傳輸對象。領(lǐng)域的邏輯被放在過程式方法中來驗(yàn)證或檢查對象的狀態(tài),這違背了第1章中討論的“講述而不要詢問”原則。

在學(xué)習(xí)了組織業(yè)務(wù)邏輯層的4種主要方法之后,介紹了DDD(領(lǐng)域驅(qū)動設(shè)計(jì))設(shè)計(jì)方法學(xué),它利用領(lǐng)域模型以服務(wù)、實(shí)體、值對象和聚合的形式來表示復(fù)雜邏輯。DDD還鼓勵(lì)人們關(guān)注業(yè)務(wù)邏輯和正在建模的領(lǐng)域,它運(yùn)用POCO或PI原則來確保不讓基礎(chǔ)設(shè)施關(guān)注點(diǎn)污染純粹的業(yè)務(wù)領(lǐng)域模型。

本章介紹了如何將DDD的概念和構(gòu)造塊應(yīng)用到銀行賬號應(yīng)用程序中,同時(shí)也展示了它們?nèi)绾文軌蜃屛覀優(yōu)檎诠ぷ鞯念I(lǐng)域建立清晰的模型,無需關(guān)注任何基礎(chǔ)設(shè)施關(guān)注點(diǎn),而在項(xiàng)目、類和方法名稱上,應(yīng)用程序使用的語言與領(lǐng)域所用語言相同。在第10章和第11章的案例研究中,將介紹如何使用更大型的、更復(fù)雜的領(lǐng)域,通過遵循DDD原則,將它們很容易地映射到復(fù)雜的工作流和業(yè)務(wù)事務(wù)。

第5章將考察能夠用于企業(yè)應(yīng)用程序的業(yè)務(wù)層中的模式和原則。


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號