2017-01-09 11 views
1

私はブログ、記事、ビデオからおじさんのクリーンアーキテクチャについてもっと学びたいと思っています。フレームワーク間のクリーンなアーキテクチャ:シーケンスフロー

このアーキテクチャでデータベースを使用する場合、UIについて(Webやフォームなどのフレームワークとして)、データベースについて何を知っていなければなりませんか?または、より一般的には、同じレイヤーにある2つ以上の部品/パーツ間でデータがどのように流れるべきですか?

たとえば、UIはビジネスエンティティと対話するためにアダプタ/ゲートウェイと通信します。読み書きするには、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)を学ぶのが難しいかもしれません。

答えて

1

私は、クリーンアーキテクチャの他の例についてさらに研究しています。

architecture design http://retromocha.com/assets/images/obvious-architecture-e3b86eaa.pngsource)です。

上記の図から、App(ビジネスエンティティとユースケース)はDelivery(Externals:UI)で前後しているようです。配信は外部(外部:DAL)と通話するために使用されます。

配信は、アプリケーション自体の配信メカニズムを実装する場所です。配信は、アプリが外部データソースと統合され、ユーザーに表示される場所です。これは簡単なUIを意味しますが、データジャックなどの外部オブジェクトの具体的なバージョンを作成することや、アプリ自体のアクションを呼び出すことも意味します。はい上部のコード例では有効ですが、他の誰が答えに提供するために多くを持っている場合、私はまだ聞いて開いていると信じて私をリード -Retroモカ

ので

、。

関連する問題