MVC3 を C# で使用し、NHibernate を ORM として、StructureMap を IoC コンテナーとして使用しています。
たぶん私の用語はのですが、簡単な例を試してみましょう
ドメイン オブジェクトがあるとします。
class Product
{
decimal Price;
}
特定のプロモーションを許可するとしましょう。今は 2 つの機能が必要です。
GetAllDiscountedProducts() //すべての割引商品を一覧表示するには IsDiscounted(Product p) //特定の商品が割引可能かどうかを確認します
製品が割引されているかどうかを判断するビジネス ルールは、価格が特定の値を超えている場合です。たとえば、50 ドルを超えるものは割引可能であるとします。
私はデータ アクセスに NHibernate を使用しているため、QueryOver 構文を使用する傾向があるため、GetAllDiscountedProducts は次のようになります。
//GetAllDiscountedProducts()
session.QueryOver<Product>().(p => p.Price > 50.00)
しかし、ビジネス ルールにデータ アクセス固有のクエリを使用したため、IsDiscounted のロジックを複製する必要があります。
bool IsDiscounted(Product p)
{
return p.Price>50;
}
ビジネスロジックを一元化する方法はありますか?