問題タブ [repository-pattern]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - リポジトリのパターンとレイヤリング。どこにセキュリティを適用しますか?
レイヤー間を適切に分離して Web アプリを設計するために最善を尽くしています。私はリポジトリ パターンを使用しているため、Web フロント エンドによって呼び出される ObjectService によって呼び出される SQLObjectRepository があります。
私のオブジェクト モデルでは、ユーザーは 1 つ以上の領域に関連付けられており、アクセスできるオブジェクトをフィルター処理する必要があります。私の質問は、オブジェクトのクエリを実行するときに、コードをサービスに配置してオブジェクトのアクセス許可を設定するか、またはそのコードをリポジトリに配置する必要があるかということです。ユーザーが 2 つの地域のメンバーである場合、ユーザーをパラメーターとしてサービスに渡す必要がありますか、それともユーザーの地域をサービスに渡す必要がありますか?
testing - リポジトリをどのようにモックしますか?
Moq を使用してリポジトリをモックしました。ただし、最近、リポジトリ インターフェイスのハードコードされたテスト実装を作成することを好むと言う人もいました。
各アプローチの長所と短所は何ですか?
編集:ファウラーへのリンクを含むリポジトリの意味を明確にしました。
design-patterns - リポジトリ パターンを実装する型の数はいくつですか?
写真を保存するインスタンスでリポジトリパターンを使用しようとしています。
私がしていることは、実際の写真をディスク上のディレクトリに保存することですが、写真に関するデータと、データベース内のどのオブジェクトにどの写真が関係するかを保存します。IStorePicRepo
ストレージに2つのインターフェースを使用する必要があるかどうか、IStorePicDataRepo
または1つのインターフェースを使用して1つのクラスに実装する必要があるかどうか疑問に思っていました。2 つの異なるストレージ メカニズムを扱っているため、同じクラスで実装すべきではないように思えます。
何かご意見は?
asp.net-mvc - MVC リポジトリ パターン: モデル クラスの作成
Conery のストアフロントを確認すると、なぜ彼が Linqs の自動生成クラス (つまり Order クラス) を使用し、部分クラスではない別の Order クラスを定義しているのか理解できません。リポジトリ パターンを使用する場合、手動でクラスを作成し、Datacontext を完全に無視する必要があるのはいつですか?
c# - 依存性注入によるリポジトリと特殊なリポジトリのデコレーターチェーン
今、私は物事をよりスマートに行う方法を見つけようとしています. そうする過程で、私ができたのは、1日でフルボトルのエクセドリンを使用することだけです.
IRepository というインターフェイスがあるとします。
そして、私は次のような実装を持っていると仮定します
さて、すべて問題ありません。リポジトリに対してすべての基本操作を実行して、すべての CRUD 機能をサポートできますが、特殊な操作が必要な場合があるため、次のようなインターフェイスがあると仮定します。
そして、そのような実装:
オーケー、これで基本的なセットアップは完了です。次に、やりたいことがもう 1 つあります。ロギングやトランザクションなどをすべて透過的にしたいと考えています。そこで、Castle Windsor や StructureMap などの依存性注入フレームワークを使用して、IRepository を要求すると、LoggingRepository と TransactionRepository によってラップされるようにします。どちらも IRepository を実装しています。
だから、私がやりたいことは次のようなものです:
Logging および Transaction デコレーターにラップされたユーザー リポジトリを返すようにしますが、これが機能する方法が思い浮かびません。これを機能させると考えることができる唯一の方法は、次のように UserRepository を実装することです。
これは、依存性注入を使用して装飾されたリポジトリを作成し、それを UserRepository のコンストラクターに渡し、それを操作を実行するリポジトリとして使用することを意味します。これは機能しますが、まだ理想的ではないと思います。
したがって、私の質問は、これがこれを行う唯一の方法であるという点で正しいのでしょうか、それともこれを正しく理解していないのか、単に何かを見逃しているだけなのかということです。また、以前にこの問題に遭遇したことがある場合、この問題をどのように解決しましたか?
asp.net-mvc - リポジトリ パターン - MVC ストアフロント
MVC ストアフロントを見て、リポジトリ クラスから IQueryable が返されていることを確認しました。LINQ を使用していない場合、そのオブジェクトを返すことは理にかなっていますか? LINQ の場合は実行が遅延されるため、サービス レイヤーにフィルターを追加することは理にかなっていますが、LINQ を使用しない場合は多くの場合、DB でフィルター処理を行います。この場合、フィルタリングを行うメソッドをリポジトリに追加するだけでよいでしょうか? もしそうなら、サービスレイヤーは本当に役に立ちますか?
asp.net-mvc - MVC: リポジトリとサービス
リポジトリで定義されるものの制限と、サービスに任せるべきものについて混乱しています。リポジトリは、データベースからテーブルに一致する単純なエンティティのみを作成する必要がありますか?それとも、それらのエンティティの組み合わせで複雑なカスタム オブジェクトを作成できますか?
つまり、サービスは、リポジトリでさまざまな Linq to SQL クエリを作成する必要がありますか? それとも、すべてのクエリをリポジトリで事前定義し、ビジネス ロジックで呼び出すメソッドを決定するだけにする必要がありますか?
asp.net-mvc - Using Blocks をリポジトリに置くことの何が問題になっていますか?
リポジトリの各メソッドでブロックを使用しています。メソッドを相互参照したい場合、別のデータコンテキストを初期化するのはベストプラクティスに反するようです メソッドでブロックを使用する代わりに、クラスで Datacontext を宣言すると、破棄する力が失われませんか??
service - このエンティティリポジトリサービスの例は、ドメイン駆動設計に適合しますか?
ドメイン駆動設計で次のパターンが意味があるかどうか知りたいです。
ドメインレイヤーは、モデルとリポジトリで構成されています。アプリケーション層は、ユーザーインターフェイスから、またはModel-View-Controllerパターンのコントローラーからのクエリを処理するサービスで構成されます。
構造の詳細:
特に、メソッドをPhraseエンティティクラスに移動することは理にかなっていますか?その場合、それはどのように呼ばれますか?
編集:
上記の例は、moffdubからの回答とAdeelAnsariからのコメントの後に変更されています。変更が強調表示されます。
追加されたIPhraseRepository.GetPhrase(phraseId)と、それをどのように含めるかについてお聞きしたいのですが。
asp.net-mvc - MVC と DDD を使用したブログ アーキテクチャ設計
asp.net mvc でブログ アーキテクチャを設計しています。投稿とコメントの 2 つのエンティティしかないとします。それぞれにコントローラーとリポジトリーが必要ですか? コメント付きの投稿を表示するメカニズムはどうなっていますか? ポスト コントローラはポスト リポジトリでポストを検索し、コメント コントローラにこのポストに関連するすべてのコメントを取得するように要求し、コメント コントローラから取得してビューに渡しますか? または、両方のリポジトリをクエリし、結果をビューに渡す投稿コントローラーに返すサービスを作成する必要がありますか?