客服接口 java調(diào)用其他模塊,是放在control層通過service接口調(diào)用好,還是放在service層通過dao的接口調(diào)用好?
java調(diào)用其他模塊,是放在control層通過service接口調(diào)用好,還是放在service層通過dao的接口調(diào)用好?我建議調(diào)用其他模塊的接口,并通過服務(wù)層調(diào)用它們。如果模塊a的服務(wù)調(diào)用模塊B的D
java調(diào)用其他模塊,是放在control層通過service接口調(diào)用好,還是放在service層通過dao的接口調(diào)用好?
我建議調(diào)用其他模塊的接口,并通過服務(wù)層調(diào)用它們。如果模塊a的服務(wù)調(diào)用模塊B的Dao,那么模塊B的Dao與模塊a是耦合的,假設(shè)隨著業(yè)務(wù)的發(fā)展,模塊a和模塊B需要作為服務(wù)分開發(fā)布,那么模塊a和模塊B需要維護(hù)模塊B的Dao,模塊a和模塊B的開發(fā)人員需要熟悉模塊B的Dao,在模塊B的表中添加或刪除字段后,需要同時(shí)通知模塊a和模塊B的開發(fā)人員,這顯然不容易維護(hù)。另外,將B的Dao模塊引入到a模塊和B模塊中,即a模塊可以直接訪問B模塊Dao的所有功能,Dao模塊通常是一些基本操作。相反,服務(wù)層通常具有特定的業(yè)務(wù)含義。通過服務(wù)公開具有特定含義的業(yè)務(wù)接口,我們可以避免將所有底層操作公開給外部模塊。假設(shè)隨著業(yè)務(wù)的進(jìn)一步發(fā)展,模塊a和模塊B需要分支數(shù)據(jù)庫,模塊a和模塊B分別使用各自的數(shù)據(jù)庫。那么當(dāng)a引入B的Dao時(shí),必須訪問B的數(shù)據(jù)庫,這意味著a需要訪問a、B模塊的數(shù)據(jù)庫,如果有C、D模塊,那么a需要訪問a、B、C、D多個(gè)模塊的數(shù)據(jù)庫,這顯然不利于開發(fā)和維護(hù),同時(shí)也不利于被引用模塊的數(shù)據(jù)安全。