为什么dao层和service层要用接口?
为什么要用Service接口和DAO接口?我们还得回到最基本的面向对象设计原则上去。
面向对象设计原则中有三条与此相关:开闭原则、依赖倒转原则、理氏替换原则。还记得依赖倒转原则吧?高层不依赖于低层,二者都依赖于抽象,也就是面向接口编程。
为什么要用Service接口?是让表示层不依赖于业务层的具体实现。为什么要用DAO接口?是让业务层不依赖于持久层的具体实现。有了这两个接口,Spring IOC容器才能发挥作用。
举个例子,用DAO接口,那么持久层用Hibernate,还是用iBatis,还是 JDBC,随时可以替换,不用修改业务层Service类的代码。
使用接口的意义就在此。