私は、ブログ、記事、およびビデオからボブおじさんのクリーン アーキテクチャについてもっと学ぼうとしています。
このアーキテクチャでデータベースを使用する場合、UI (Web やフォームなどのフレームワークとして) はデータベースについて何を知る必要がありますか? または、より一般的には、同じレイヤーにある 2 つ以上のピース/パーツ間でデータがどのように流れる必要がありますか?
たとえば、UI はアダプター/ゲートウェイと通信して、ビジネス エンティティと対話します。読み取り/書き込みのために、UI は、データベースにアクセスしてアダプター/ゲートウェイを渡すことができる任意のクラスを呼び出して、ビジネス エンティティと対話できることがわかります。
public class SomeUI
{
public static void Main(string[] args)
{
SomeAdapter adapter = new SomeAdapter();
SomeDataAccess db = new SomeDataAccess();
db.Save(adapter);
}
}
public class SomeDataAccess
{
public void Save(SomeAdapter adapter)
{
//Interact with database
}
}
public class SomeAdapter
{
//properties
}
記事の多くは、この記事とほとんど変わりません ( https://subvisual.co/blog/posts/20-clean-architecture )。同じレイヤーにあるピースが互いにどのように機能するかについて説明している良い記事を見つけられませんでした。したがって、それを参照する記事は受け入れられる答えになります。
これは依存関係の規則に違反しているようには見えませんが、UI とデータベースの間に依存関係を作成しているため、正しいことをしていないように感じます。私はこの概念を考えすぎているのではないかと考えています。それは、3 層アーキテクチャ (UI -> BLL -> DAL) を学習するのに苦労しているからかもしれません。