首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >持久层与业务逻辑层的区别

持久层与业务逻辑层的区别
EN

Stack Overflow用户
提问于 2019-10-03 09:58:39
回答 1查看 324关注 0票数 1

持久层是一组文件,用于应用程序和数据库之间的通信。2.业务逻辑层是从数据库中检索数据信息的规则,然后服务器将这些信息显示在用户表示层上

这两层看起来是一样的

它们在真实场景中是什么意思?另外,它们在代码上有区别吗?

EN

回答 1

Stack Overflow用户

发布于 2019-10-03 12:01:34

对系统分层的想法是isolation。一层是独立于另一层的。

有多少不同的数据库?Postgresql,MySql,MongoDB,Cassandra...持久层(或数据访问层)将为您的系统提供一个接口。假设您的系统需要通过ID查找用户。

代码语言:javascript
代码运行次数:0
运行
复制
public interface UserRepository {
  User findByID (Long id);
}

对于每个数据库,实现都会改变,但对于使用它的应用程序来说,这真的有关系吗?No,只要接口提供的契约没有被破坏。

一旦您有了数据,业务逻辑将指示您将处理什么以及如何处理它。从MVC的角度来看,业务逻辑还定义了事务范围(更多信息请参见:Why we shouldn't make a Spring MVC controller @Transactional?)。假设您有使用上一个界面检索到的用户。但是您需要返回额外的属性,例如,它的薪水。但是用户POJO上没有工资属性。此外,要计算工资,您的系统需要调用外部系统。您的业务逻辑将处理此问题,然后将压缩对象(称为数据传输Obejct)返回给调用者。

一些资源:

https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58211388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档