我理解在單個模塊內工作時的依賴倒置,但是我想在應用它時還有跨模塊依賴關係。在下面的圖中,我有一個現有的應用程序,我需要爲參考數據服務實現一些新的需求。我想我會創建一個新的jar(將來可能是一個獨立的服務)。第一幅圖顯示了我過去接觸過這種東西的正常方式。 referencedataservices jar中有一個應用程序用來調用它的接口。跨模塊使用依賴倒置原理的正確設計?
第二張圖顯示了我嘗試使用DIP,該應用程序現在擁有其抽象,因此它不會因參考數據服務更改而改變。這似乎是一個錯誤的設計,因爲它創建了一個循環依賴。 MyApp依賴於referencedataservices jar,而referencedataservices jar依賴於MyApp。
所以第三個圖通過創建一個額外的抽象層回到更正常的依賴關係。我對嗎?或者這真的不是DIP的意圖?有興趣聽取其他方法或建議。