1. DAO的職責就是增刪改查,不該有多余的邏輯。這個問題其實我碰到過很多人寫的代碼和接口的設計都非常不合理。我個人有一個標準,你可以參考一下,如果用Hibernate的話,DAO的實現代碼絕不會超過15行,至少我現在的DAO就是這樣的。DAO互相調用?這是絕對不可能的,除非你設計有問題。
2. Service層的職責就是實現具體的業務操作。我不認為Service之間有必要相互調用,至少目前我還沒有碰到過有必要互相調用的情況,我認為良好的設計也是可以避免這一點的。
3. 配置文件多使用autowire就可以變得異常簡單,除非你認為autowire會影響性能。
4. 看實際情況,我Facade有時候是個好主意,不過我還沒有使用過,Service接口直接暴露給Action層。