业务类和域类有什么区别?持久类是什么意思?
zpjtge221#
业务类提供特定于域的逻辑。域类是表示域的一部分的实体。持久类,或者更好的持久示例,在服务器重新启动后具有相同的数据(数据通常存储在某种数据库中)。让我们以银行交易为例。你会有一个持久的域类 Account . 我的 Account (示例)将有一个字段 Balance 值为1000。处理借项的事务业务逻辑类似于 AccountDebit 并有作为方法 debitAccount(Account account, int amount) ,并作为业务逻辑
Account
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
我知道钱通常不是整数,而且借记的金额通常是贷记给其他人的:)
2w3rbyxf2#
域类是来自域模型的类,martin fowler在企业应用程序体系结构模式中描述如下:包含行为和数据的域的对象模型。最糟糕的情况是,业务逻辑可能非常复杂。规则和逻辑描述了许多不同的情况和行为倾向,正是这种复杂性使对象得以处理。域模型创建了一个由相互关联的对象组成的网络,其中每个对象都代表一些有意义的个体,无论是大到公司还是小到订单上的一行。对我来说,与业务类没有区别:业务对象执行的业务逻辑不比域对象多或少(业务逻辑在域对象之外实现的域模型称为贫血域模型,这是一个贬义词),域对象和业务对象是同一回事。最后,持久类是一个可以。。。持久化,这意味着将信息的内存表示形式传输到一个物理存储器,该物理存储器将在jvm的活动期之后持久化。通常,持久性是使用数据库实现的(但这并不是唯一的解决方案,例如,请参见对象持久性)。典型的持久性操作包括创建、读取、更新和删除,这些操作称为crud操作。域对象通常是持久性的,即您可以通过一个api对它们执行crud操作,该api隐藏所选持久性引擎的底层细节。
oxosxuxt3#
“域”类是对数据建模的类。它通常用于将数据从数据存储(例如数据库)Map到内存中的对象。业务类是应用程序使用的类。它可以与域类相同,通常执行某种业务逻辑或处理。持久性是指将对象状态保存到某个数据存储(例如xml、文本文件或更常见的数据库)的能力。因此,无论应用程序是否正在运行,这种对象的状态都会“持续”。听起来你对对象/关系Map很好奇。我建议您先阅读这篇维基百科文章。
qojgxg4l4#
业务类是为特定项目设计和使用的类,很难被其他项目重用。域类是为特定域设计和使用的类,可以由执行类似操作的多个项目使用。
例如,jdbc类是用于数据库访问的域类。swing类是用于gui构造和操作的域类。 Form1 其中包含一组用于显示“hello world”消息的组件。
Form1
wz3gfoph5#
术语business和domain常用作同义词。就我个人而言,我更喜欢术语域模型、域对象等,因为它们不受业务约束(不管是什么)。例如,在safewhere中,我们主要处理基于声明的身份和授权。我们建模的概念与传统的“业务”几乎没有共同点,因此在这种情况下,我认为领域模型是一个更合适的术语。
5条答案
按热度按时间zpjtge221#
业务类提供特定于域的逻辑。
域类是表示域的一部分的实体。
持久类,或者更好的持久示例,在服务器重新启动后具有相同的数据(数据通常存储在某种数据库中)。
让我们以银行交易为例。你会有一个持久的域类
Account
. 我的Account
(示例)将有一个字段Balance
值为1000。处理借项的事务业务逻辑类似于
AccountDebit
并有作为方法debitAccount(Account account, int amount)
,并作为业务逻辑我知道钱通常不是整数,而且借记的金额通常是贷记给其他人的:)
2w3rbyxf2#
域类是来自域模型的类,martin fowler在企业应用程序体系结构模式中描述如下:
包含行为和数据的域的对象模型。
最糟糕的情况是,业务逻辑可能非常复杂。规则和逻辑描述了许多不同的情况和行为倾向,正是这种复杂性使对象得以处理。域模型创建了一个由相互关联的对象组成的网络,其中每个对象都代表一些有意义的个体,无论是大到公司还是小到订单上的一行。
对我来说,与业务类没有区别:业务对象执行的业务逻辑不比域对象多或少(业务逻辑在域对象之外实现的域模型称为贫血域模型,这是一个贬义词),域对象和业务对象是同一回事。
最后,持久类是一个可以。。。持久化,这意味着将信息的内存表示形式传输到一个物理存储器,该物理存储器将在jvm的活动期之后持久化。通常,持久性是使用数据库实现的(但这并不是唯一的解决方案,例如,请参见对象持久性)。典型的持久性操作包括创建、读取、更新和删除,这些操作称为crud操作。域对象通常是持久性的,即您可以通过一个api对它们执行crud操作,该api隐藏所选持久性引擎的底层细节。
oxosxuxt3#
“域”类是对数据建模的类。它通常用于将数据从数据存储(例如数据库)Map到内存中的对象。业务类是应用程序使用的类。它可以与域类相同,通常执行某种业务逻辑或处理。
持久性是指将对象状态保存到某个数据存储(例如xml、文本文件或更常见的数据库)的能力。因此,无论应用程序是否正在运行,这种对象的状态都会“持续”。
听起来你对对象/关系Map很好奇。我建议您先阅读这篇维基百科文章。
qojgxg4l4#
业务类是为特定项目设计和使用的类,很难被其他项目重用。
域类是为特定域设计和使用的类,可以由执行类似操作的多个项目使用。
例如,jdbc类是用于数据库访问的域类。swing类是用于gui构造和操作的域类。
Form1
其中包含一组用于显示“hello world”消息的组件。wz3gfoph5#
术语business和domain常用作同义词。就我个人而言,我更喜欢术语域模型、域对象等,因为它们不受业务约束(不管是什么)。
例如,在safewhere中,我们主要处理基于声明的身份和授权。我们建模的概念与传统的“业务”几乎没有共同点,因此在这种情况下,我认为领域模型是一个更合适的术语。