私はデータを保持するシステムを使用したプロジェクトに取り組んでおり、データ アクセス アプローチを使用してデータを取得し、プレゼンテーション側のコンポーネントにデータを渡すことを考えています。これを N 層アーキテクチャと考えています。ここに私の考えがあります:
プレゼンテーション レイヤー (Web フォームとユーザー コントロール)
\/
データ アクセス レイヤー (これが私の質問の場所です)
\/
ビジネス オブジェクト (システム内の各エンティティの C# クラス)
\/
データベースからデータを取得するための既存の API (MS SQL 駆動型)
私の DAL では、システムから特定の API メカニズムを使用してビジネス オブジェクトを取得し、プレゼンテーション コンポーネントに渡すことができるようにしたいと考えています。私は、さまざまなユーティリティ リポジトリ クラスを作成して「多数の X ビジネス オブジェクトを取得する」というリポジトリ パターンを認識しています。たとえばArticle
、 と呼ばれるビジネス オブジェクトがあるArticleRepository
としますArticle
。これは素晴らしいことですが、私にとっては DAL ではやり過ぎかもしれません。static GetAll()
ビジネス オブジェクトにメソッドを追加するなど、別のことをする名前はありますか? だからではなく:
var repo = new ArticleRepository();
IEnumerable<Article> articles = repo.GetAll();
私は次のような簡単なことを考えています:
IEnumerable<Article> articles = Article.GetAll();
クラスArticle
は、関連するプロパティとヘルパー メソッドを備えたビジネス オブジェクトですが、メソッドも備えていstatic GetAll()
ます。このアプローチに名前はありますか?このスリム化された疑似リポジトリを作成するのは悪い考えですか?
簡単に言えば、システムから取得するための一意のクエリを使用して多くのビジネス オブジェクトを持っているため、これを行うには多くのリポジトリ クラスが必要になるためです。