【问题标题】:Why do they use interface in this guide为什么他们在本指南中使用界面
【发布时间】:2016-12-24 07:56:23
【问题描述】:

所以我是 Java 的新手,我正在尝试使用 JSP 和 servlet 开始使用 Web 应用程序。我遇到了这个 CRUD 网络应用指南A simple CRUD Tutorial Using Java Servlet / JSP。问题是,我不明白他们为什么要创建 StudentDAO 接口。我知道这对你们大多数人来说很容易理解,这就是我在这里问的原因。如果真的需要 StudentDAO 接口,我想要的只是一个答案,因为我们只在那里声明方法,并在一个名为 studentDAOImplementation 的类中覆盖所有方法。 我知道我应该阅读更多关于 Java 接口的内容,但我希望能够解释为什么在这个示例中需要接口。

【问题讨论】:

  • 通常在小型应用程序中,很多东西都不是“需要的”。但是 DAO is a standard pattern, 所以他们正试图教你使用一个,因为在较大的应用程序中它 could be useful there.
  • 接口允许你对同一事物有多个不同的实现。这意味着如果他们决定在未来换成 MySQL 或 Microsoft SQL Server,那么他们可以换出实现而无需重新编译其他所有内容。这会导致诸如依赖注入控制反转之类的东西非常有趣,你应该学习它们。

标签: java mysql jsp servlets


【解决方案1】:

这并没有一个简单的答案。答案的草图是 - 因为您希望独立于您的应用程序实际存储/检索数据库中的数据的方式。该接口提供了 DAO(数据访问对象)应该能够做什么的功能规范 - 由具体的实现来实际执行。例如,出于测试目的,您可能想要设置一个不真正使用数据库的存根 DAO,而是为您提供预制对象。在现实世界的复杂应用程序中,您可能希望根据实际使用的数据库引擎等等来改变 DAO。所以一般来说,这是一个将功能规范与实现解耦的实例。

【讨论】:

    猜你喜欢
    • 2014-08-26
    • 2013-08-08
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多