0

ユーザー インターフェイスにリポジトリを挿入しようとしているように見える傾向について、私は少し混乱しています。

私は常に、UI がリポジトリ レイヤーについて完全に無知であるが、上のレイヤーについてしか知らないシステムを構築または作業してきました。

少しグーグルで検索すると、私と同じ懸念を持っている開発者が見つかりました。以下のリンクを参照してください

https://softwareengineering.stackexchange.com/questions/199799/should-a-repository-be-passed-in-to-the-user-interface

しかし、答えを読んでもまだ明確ではなく、リポジトリをUIに挿入する必要があるとは思えません。

私が次のものを持っている場合、

UI(dll1) --> ServiceGateway(dll2)-> Service(wcf)(dll3)-->BizLayer(dll3)-->Dal(dll3)

なぜリポジトリをずっと注入するのでしょうか?

ええ、それはモックには適していますが、開発者が UI からリポジトリを直接呼び出すことを止めるものは何もありません。これは何度も発生しています。

誰かがリンクを指摘したり、以前は悪かったものが「ベストプラクティス」である理由を説明したりできますか?

4

3 に答える 3

1

リポジトリは、UI と永続性の間を抽象化したものです。それ以上の抽象化レベルが必要な場合もあれば、それで十分な場合もあります。アプリケーションによって異なります。重要なことは、その抽象化レイヤーが存在すること、UI がその抽象化レイヤーを介して永続化機能にアクセスすること、およびそのレイヤーがロケーター (アンチ) パターンを介してアクセスされるのではなく、UI に注入されることです。

于 2013-11-05T08:59:27.350 に答える
0

申し訳ありませんが、明確な回答はできませんが、あなたの懸念を共有します。

私がデータベース、dal、および bll の一部をセットアップした最近のプロジェクトで、PM はデータを UI から隠しておくことを絶えず叩いていましたが、私は完全に同意しました。それから突然、彼は UI からリポジトリを注入することを主張しました - それはテストを容易にしたからです。

私は、あなたと同じくらい混乱していたと思います。開発者がデータに直接アクセスできないようにする方法を尋ねたところ、彼はリポジトリにアクセスできたので、彼の答えは「すべきではない」でした。そのため、データアクセスを確実に制御するために個別のレイヤーを使用してフレームワーク全体を構築しましたが、最終的には「開発者がうまく動作することを願っています」に依存するだけです。

私はすべて、リポジトリ インジェクションを可能な限りデータ レイヤーの近くに移動することに賛成であり、その責任を UI に任せることは絶対にありません。

于 2013-11-05T09:07:06.463 に答える