模型 - 持久性和服务层?真正?

时间:2012-02-26 02:55:50

标签: java spring-mvc persistence

我想确认这句话是否属实:

模型包括:

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

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

您还可以参考/支持您的答案吗?我相信我已经在Spring Framework中看到了很好的图表,但无论这次如何搜索我都找不到它。

另一点:我一直想知道为什么我们如此抽象地抽象东西,以至于人们只是停止了解,是否会增加我们自己的价值呢? :\

例如分析Spring MVC我可以说中心部分是控制器,无论你如何命名其他层,控制器决定在哪里提取什么,如何验证它以及传递它的视图/控制器。然而,正式文章中从未发现过这种简单的陈述,使人们感到困惑。

所以控制器是我们的上帝。控制器在类中调用一些方法来调用另一个类的方法。最重要的是,它们都依赖于依赖注入,因为我们只需要单个实例的单个实例。控制器>服务> DAO就是这样。我非常感谢语用学写的书。

如果人们根据事物的真实情况来写书,而不是如何使用图表精美地绘制书籍,或者写出无穷无尽的问题,因为这些问题永远不会在第一时间提出。我感谢stackoverflow给那些总能告诉我路径的人。 ; - )

1 个答案:

答案 0 :(得分:6)

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

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

这种策略的问题是你最终在视图和模型的具体实现之间存在依赖关系。此外,如果您以后决定需要一些未包含在您的模型中的额外信息,则必须重写您的视图以解决此问题。这就是为什么通常建议您在将非常简单的模型(Map)传递给视图之前,在控制器中进行尽可能多的数据准备。

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

diagram showing the separation of layers