我幾個月來一直在撓頭,我仍然能夠令人滿意地說服自己我有正確的答案。我們有一個非常典型的情況,我們在應用程序的多個層之間存在依賴關係,每個層都在自己的程序集中。作爲例子,我們的應用程序層使用存儲庫層來檢索非常標準的數據。我的問題是,抽象(本例中爲接口)在哪裏存在,爲什麼?在給出的例子中,它是否應該放在應用程序層或存儲庫層或單獨的抽象程序集中?依賴倒置原則 - 接口應該在哪裏?
根據The Clean Architecture description中的圖表和描述(不是我們特別遵守的)我已經將它們放在應用程序層中,以便所有依賴項都向內指向,但我不確定這是否正確。我已經閱讀了不少其他文章,並且看到了無數的例子,但是關於抽象概念應該在何處生存的理由很少。
我見過this question但我不相信它回答我的問題,除非當然實際答案是無關緊要的。