为什么直接从 Servlet 访问 DAO 是一种不好的做法?
Why is a bad practice to access DAO directly from a Servlet?
我正在阅读有关使用 Java 进行 Web 开发的良好做法的主题,发现从 Servlet 调用 DAO 是一种不好的做法。该主题本身并没有解释为什么这是一个不好的做法,尽管它清楚地解释说,按照最佳做法,我们需要一个中间 class(例如:一个服务 class)来调用 DAO。
为什么这是一种不好的做法?对此有任何理论和/或技术解释吗?
答案是为了可用性。
- DAO 解析对数据库对象的访问。
- Servlet 只能用作处理远程请求和响应(通常是 HTTP)的外观。
Servlet 的目的是做参数的parsing/formatting;但他们一定对业务逻辑一无所知。
因此,在 servlet 和 DAO 之间需要一个中间级别的业务逻辑类。 类 从这个级别开始必须了解业务规则、数据库架构以及如何使用它。此业务逻辑不得耦合到任何部署模式,因此可以从多个外观中使用(和重用):
- servlets/jsps,
- 摆动图形,
- spring 控制器,
- 蚂蚁任务,
- 等等
我正在阅读有关使用 Java 进行 Web 开发的良好做法的主题,发现从 Servlet 调用 DAO 是一种不好的做法。该主题本身并没有解释为什么这是一个不好的做法,尽管它清楚地解释说,按照最佳做法,我们需要一个中间 class(例如:一个服务 class)来调用 DAO。
为什么这是一种不好的做法?对此有任何理论和/或技术解释吗?
答案是为了可用性。
- DAO 解析对数据库对象的访问。
- Servlet 只能用作处理远程请求和响应(通常是 HTTP)的外观。
Servlet 的目的是做参数的parsing/formatting;但他们一定对业务逻辑一无所知。
因此,在 servlet 和 DAO 之间需要一个中间级别的业务逻辑类。 类 从这个级别开始必须了解业务规则、数据库架构以及如何使用它。此业务逻辑不得耦合到任何部署模式,因此可以从多个外观中使用(和重用):
- servlets/jsps,
- 摆动图形,
- spring 控制器,
- 蚂蚁任务,
- 等等