Service,Dao层为什么要写接口?
很容易想到接口是为了多实现,增加灵活度,但其实是站不住脚的,因为实际开发中往往只需要单实现,多实现很少发生。
其实这涉及到设计模式中的依赖倒置原则,高层模块不能直接依赖于底层模块,应该依赖于抽象。这样就可以降低耦合度,比如对service发生改动,就不需要去修改controller。类似地,比如tomcat,我们所写的外部工程是都可以在tomcat中运行,tomcat就是高层模块,我们所写的web项目就是底层模块,此时tomcat依赖于Servlet规范,而我们编写代码时要实现抽象,也就是按照Servlet编写代码。