2009-11-04 124 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操作。