簡體   English   中英

具有存儲庫和服務的干凈架構

[英]Clean Architecture with Repositories and Services

我正在實施一個干凈的架構。 我有四個項目:域、應用程序、基礎設施和演示文稿。

我在基礎架構中定義了存儲庫實現。 我在域中有存儲庫接口。

我也有注入相應存儲庫的服務。 例如,學生服務。 我將 StudentRepository 注入 StudentService。 我的問題是,IStudentService 接口應該放在哪里? 它應該與接口 IStudenRepository 一起駐留在域中嗎? 還是放在應用程序中更合適?

我目前在應用程序項目中有我的 IStudentService。 但我的理解是松散耦合並將所有接口放在域項目中。 我的理解正確嗎?

將接口定義放置在清潔架構應用程序的域層中通常是一種很好的做法。 這是因為領域層代表應用程序的核心業務邏輯,而接口是定義該邏輯契約的重要部分。 通過將接口定義放在領域層中,您可以確保領域與應用程序其他層中的實現細節解耦。

例如,在您的情況下,IStudentRepository 接口將在域層中定義,因為它表示 StudentService 如何與學生數據存儲交互的合同。 IStudentService 接口也將在域層中定義,因為它表示與學生相關的業務邏輯的契約。

通過將這兩個接口都放在領域層中,您可以確保領域與應用程序其他層中的實現細節分離。 這使得在不影響應用程序其余部分的情況下更容易更改這些接口的實現。

總之,將接口定義放在干凈架構應用程序的域層中通常是一種很好的做法,以確保松散耦合和關注點分離。

要實施 Clean Architecture,請按照以下步驟操作:

領域項目:

  • 域應該只有實體,例如“學生”實體。

申請項目:

  • 應用程序應該有接口和服務以及服務的實現。

基建項目:

  • 基礎設施應該有應用程序和 DbContext class 中定義的接口的實現。

演示文稿應該有用戶界面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM