1

作業中のWebアプリで「ストア」オブジェクトが多用されています。このパターンの名前はありますか?これらのタイプはBLLまたはDALにありますか?

これらのストアには、単一のタイプに関連付けられた、従来のDALタイプと見なされるもののフラグメントが含まれています。

たとえば、タブの永続化と取得のためのメソッドを含むTabStoreがあります。TabStoreの各メソッド内には、適切なNHibernateクエリを呼び出すためのコードがあります。

このパターンを使用する際の落とし穴(ある場合)は何ですか?かつてはモノリシックなDalタイプであったものを、より扱いやすく、より小さなタイプに分離するのは本当に簡単な試みですか?

方法の例:

public IList<Tab> GetAllTabInstancesForUserId(Guid userId)
{
    IList<Tab> tabInstances =
                UoW.Session.CreateQuery("from Tab t where t.UserId=:userId order by t.TabOrder")
                   .SetGuid("userId", userId)
                   .SetCacheable(true)
                   .List<Tab>();

    return tabInstances;
}
4

3 に答える 3

2

これは、より一般的にリポジトリとして知られているものである可能性があります。

抽象リポジトリはドメインモデルに属しますが、別のデータアクセスコンポーネントの具象クラスによって実装する必要があります。

于 2010-01-19T13:58:39.703 に答える
1

質問を正しく理解していれば、「ストア」はBLLよりもDALに関連しています。これは、ストアにロジックがほとんどないためです。結局のところ、ストアの役割は単に「保存」です。

于 2010-01-19T13:57:25.743 に答える
1

'store'が使用されているコードスニペットなど、いくつかの詳細が間違いなく役立ちます...

しかし、質問の内容に基づくと、開発者は、リポジトリパターン(データアクセスレイヤーに関連する)を意味する「リポジトリ」ではなく「ストア」という用語を使用したようです。

更新後...開発者が最初に「ストア」と呼んだものは「リポジトリ」のようです。

于 2010-01-19T13:58:18.627 に答える