2009-11-04 125 views

回答

11

「域」類是模擬數據的類。它通常用於將數據存儲區(例如數據庫)中的數據映射到內存中的對象。業務類是您的應用程序使用的類。它可以與域類相同,並且通常執行某種業務邏輯或處理。

持久性是指將對象狀態保存到某些數據存儲(例如xml,文本文件或更常見的數據庫)的能力。所以這種對象的狀態會「持續」,無論應用程序是否在運行。

這聽起來像你對對象/關係映射好奇。我建議您閱讀this wikipedia article開始。

-4

業務類別是爲特定項目設計和使用的類,難以重用於其他項目。

域類是爲特定域設計和使用的類,可供多個執行類似事情的項目使用。

例如,JDBC類是數據庫訪問的域類。 Swing類是用於GUI構建和操作的域類。 Form1其中包含一組用於顯示「Hello World」消息的組件,是商務類。

3

該條款業務域名經常使用同義詞。就個人而言,我更喜歡域名模式,域名對象等,因爲他們不受限於處理業務(無論如何)。

作爲示例,我們在Safewhere中主要使用基於聲明的身份和授權。我們建模的概念與傳統的「商業」很少相同,所以在這種情況下,我認爲域名模型是一個更合適的術語。

2

業務類提供域特定的邏輯。

域類是表示域的一部分的實體。

服務器重新啓動後(數據通常存儲在某種數據庫中),持久性類或更好的持久性實例具有相同的數據。

讓我們以銀行交易爲例。您將擁有持久域名類Account。我的Account(實例)將具有值爲1000的字段Balance

它處理借記卡交易的商業邏輯是一樣的東西AccountDebit並具有作爲方法debitAccount(Account account, int amount),並隨着業務的邏輯

int balance = account.getBalance(); 
if (balance < amount) { 
    throw exception("You're too poor"); 
} 
balance = balance - amount; 
account.setBalance(balance); 
account.commit(); // save the values to persistent store 

而且我知道這些錢通常不是一個int,並且扣除額通常存入別人:)

28

一個領域類是,馬丁·福勒描述爲按照Patterns of Enterprise Application ArchitectureDomain Model類:

合併行爲和數據的域的對象模型。

alt text

在最壞的業務邏輯可能會非常複雜。規則和邏輯描述了許多不同的情況和行爲傾向,並且這些對象被設計用來處理這種複雜性。領域模型創建一個互聯對象網絡,其中每個對象都代表一些有意義的個體,無論其規模與公司一樣大,還是小到訂單上的一行。

而對於我來說,是一個商務艙沒有區別:一個業務對象不執行比域對象(其中業務邏輯域對象之外實現的領域模型或多或少的商業邏輯被稱爲Anemic Domain Model,這是一個貶義詞),域對象和business objects都是是同樣的東西。

最後,持久類是一個類,它可以...持久化,即將內存中的信息表示轉移到物理存儲器,該存儲器將持久存儲在JVM的活動之外。通常,持久性是使用數據庫實現的(但這不是唯一的解決方案,請參閱object prevalence)。典型的持久化操作包括創建,讀取,更新和刪除,這些被稱爲CRUD操作。域對象通常是持久性的,即您可以通過隱藏所選持久性引擎的基礎詳細信息的API對它們執行CRUD操作。