gpt4 book ai didi

java - 模型 - 持久层和服务层?真的?

转载 作者:行者123 更新时间:2023-11-30 05:54:19 37 4
gpt4 key购买 nike

我试图确认这个说法是否属实:

模型包括:

持久层:本质上是 DAO + 表示表的类 + DTO

服务层:DAOS + 一些逻辑的组合

您能否也引用/支持您的回答?我相信我在Spring Framework中看到了很好的图表,但是这次无论怎么搜索我都找不到。

还有一点:我一直在想,为什么我们将东西抽象得如此之深,以至于在某些时候人们就会停止理解,这样做是为了增加我们自己的值(value)吗? :\

例如分析 Spring MVC 我可以说核心部分是 Controller ,无论你如何命名其他层, Controller 决定去哪里提取什么,如何验证它以及将它传递给哪个 View / Controller 。然而,这种在正式文章中从未出现过的简单陈述却让人迷惑不解。

所以 Controller 是我们的上帝。 Controller 要求一个类中的某个方法调用另一个类的方法。最重要的是,所有这些都与依赖注入(inject)相连,因为我们只需要一个实例来处理单例性质的对象。 Controller>Service>DAO 就是这样。我真的很感激 pragmatics 写的书。

如果人们根据事物的真实面目而不是如何使它们看起来漂亮地绘制在图表中或写出无穷无尽的问题,那么一开始就永远不会提出这样的问题。我感谢 stackoverflow 总是给我指路的人。 ;-)

最佳答案

MVC 和 DAO/服务架构与其说是彼此包含的概念,不如说是彼此相邻的概念。

在 MVC 中,您的 Controller 负责获取所有数据,以某种方式将其放入模型中,然后将模型传递给要呈现的 View 。如果您还使用 DAO/服务架构,您的 DAO/服务可能会返回一个实体,其中包含您将在给定页面上显示的所有信息,如果事情相对简单,人们通常会使用这些作为 View 的模型。

这种策略的问题是您最终会在 View 和模型的具体实现之间产生依赖关系。此外,如果您后来决定需要一些模型中未包含的额外信息,则必须重写您的 View 以说明这一点。这就是为什么通常建议您在将非常简单的模型(Map)传递给 View 之前在 Controller 中尽可能多地准备数据。

这是一个显示层分离的图表:

diagram showing the separation of layers

关于java - 模型 - 持久层和服务层?真的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9450122/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com