2012-02-26 53 views
2

我试图确认这一说法是否属实:模型 - 持久性和服务层?真正?

型号包括:

持久层:主要的DAO代表表+ DTO的

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

你能否也请参考/支持你的答案?我相信我在Spring Framework中看到了很好的图表,但无论这次如何搜索,我都找不到它。

另一点:我一直在想,为什么我们要抽象的东西太重,以至于在某些时候人们停止了解,是不是为了增加自己的价值? :\

例如分析Spring MVC我可以说中央部分是控制器,不管你如何命名其他层,它是控制器谁决定去哪里提取,如何验证它以及哪个视图/控制器通过它上。然而,这种简单的陈述在正式文章中从未发现让人们感到困惑。

所以控制器是我们的上帝。控制器要求调用另一个类的方法的类中的某个方法。最重要的是,所有的连接都依赖于注入,因为我们只需要一个实例来处理单例本质对象。控制器>服务> DAO就是这样。我真的很感激由语用学写的书。

如果人们会根据事物的真实情况编写书籍,而不是如何让他们看起来漂亮地绘制在图表中,或者写下无尽的问题,因为这样的问题永远无法提升。我感谢那些总是向我展示路径的人。 ;-)

回答

6

MVC和DAO /服务体系结构是相互包含在内的概念,而不是彼此相邻的概念。

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

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

这里的显示层的分离图:

diagram showing the separation of layers

+0

谢谢你,请你提供一个链接来图,所以我可以将其标记为接受 – Aubergine 2012-02-26 19:05:04

+0

我从[这里](HTTP得到它: //biese.wordpress.com/2007/10/08/service-layer-and-dao-architecture/)。 – beerbajay 2012-02-26 19:46:14