Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DAOImpl接口_Java_Spring_Dao - Fatal编程技术网

Java DAOImpl接口

Java DAOImpl接口,java,spring,dao,Java,Spring,Dao,在Spring中,在创建一个DAO类来访问数据库的同时,我还实现了一个DAO接口。i、 e: public interface EmployeeDAO { public void addEmployee(Employee emp); } @Repository public class EmployeeDAOImpl implements EmployeeDAO { public void addEmployee(Employee emp) { /* code

在Spring中,在创建一个DAO类来访问数据库的同时,我还实现了一个DAO接口。i、 e:

public interface EmployeeDAO {
    public void addEmployee(Employee emp);
}

@Repository
public class EmployeeDAOImpl implements EmployeeDAO {
    public void addEmployee(Employee emp) {
        /* code here */
    }
}

为什么我们要实现一个接口?为什么“公共类EmployeeDaImpl”还不够?谢谢。

此问题与此链接几乎相似

我希望这将消除您的疑问

“程序是一个接口,而不是一个实现。”是一个基本的OO设计原则。遵循这一原则可以使代码更具可扩展性。让我们举几个例子:

  • 如果您正在为将调用EmployeeDAO的uplevel服务编写一些测试用例,那么您可以简单地编写一个实现EmployeeDAO接口的MockEmployeeDAO类,然后您就能够模拟测试的许多场景,而无需实际查询数据库
  • 如果可能需要更改数据层的实现,例如,从关系数据库迁移到NoSql数据库,或添加缓存层。通过对DAO接口编程,可以在不修改上层代码的情况下进行更改

  • 如果你目前看不到任何好处,只需遵循原则即可。我相信你将来会得到好处

    谢谢你在微博上的评论。我会考虑的!谢谢