我今天参加了考试,其中一个问题如下:
<小时/>When implementing MVC, from which park of out web application (controller or view) we should call the methods defined in out DAO implementation? You should explain.
我知道 Controller 负责将传入的http请求重定向到适当的 View , 并且 View (JSP 文件)应该使用 DAO 函数来获取信息并显示它。
我的讲师说我错了, Controller 对此做出了回应。
当我问为什么时,他说“我应该听讲座”。 那么,为什么 DAO 应该从 Controller 而不是 View 调用呢?
最佳答案
你应该听过讲座。
抱歉,开个玩笑:)
模型- View - Controller 是一种重要的设计模式,用于各种 UI 设计。
- View 的作用是显示数据并与用户交互 - 仅此而已
- 模型是关于建模和存储数据 - 没有别的
- Controller 负责处理数据、将内容映射到模型中或从模型中映射出来等。
您应该能够完全交换 MVC 系统中的 View ,这将改变用户交互 - 但不会改变程序的任何行为。由此应该清楚为什么将逻辑放入 View 中是一个坏主意。
DAO 是关于如何实现数据存储和持久层的。 View 是关于如何显示数据的。
它们是两个截然不同的工作,MVC 的全部意义就是将事情分开并给它们自己独立的工作来做。您可以换入和换出不同的持久层,并且 View 不需要更改,您可以换入和换出不同的 View ,并且持久层不会更改。
通过直接将表示与持久性耦合,您将失去这种解耦。正确的方法是编写只关心模型的 View 。编写只关心数据的模型,然后使用 Controller 将它们粘合在一起并填充模型。
关于java - 实现 MVC 时,应用程序的哪一部分应该调用 DAO 中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20592956/