DAO接口
為每個DAO聲明接口的好處在於
1. 可以在尚未實現具體DAO的時候編寫上層代碼,如Service里對DAO的調用
2. 可以為DAO進行多實現,例如有JDBCDAO實現,MyBatisDAO實現,而不需要更改上層代碼,只需要簡單的在Spring的IoC配置里修改一下注入的DAO實現
Service接口
1. 可以在尚未實現具體Service情況下編寫上層改代碼,如Controller對Service的調用
2. Spring無論是AOP還是事務管理的實現都是基於動態代理的,而動態代理的實現依賴於接口,所以必須有接口的定義才能使用這些功能
3. 可以對Service進行多實現
總的來說,接口的優勢就在於規范方法參數,返回值,另外可以實現多態,結合Spring來說接口對於使用Spring的各種功能也是不可或缺的
另外,使用接口對於測試代碼也是有好處的,對於mock一個方法來說,我們不需要關注方法的具體實現,因為本來mock就會將方法內部實現置空,我們的關注點集中於方法參數以及返回值,所以使用接口對於快速實現流程上的測試是有好處的.