2011-12-23 12 views
0

これは一般的な質問です。私はUnit of Workパターンを使ってシステムを設計しています。ユニットテスト可能な方法で複数の作業単位の間で論理を共有する方法を明らかにする確立されたパターンはありますか?ここで作業単位のパターンでコードを共有する

は、より具体的なシナリオです:

UnitOfWork1発注書がある - >承認のためのPOを提出

UnitOfWork2 - >承認またはPOを拒否し、戻って提出者にそれを送ったが、

両方の作業単位は、次のような同じコードを共有します。

ShareLogic1 - >録音PO

、このようなロジックは、複数の間で共有することができる場所は何パターン(s)は、私が使用することができます

への最後のアクション - >ユーザーがPO

SharedLogic2へのアクセス権を持っている必要があります仕事の単位。このケースでは継承は問題を解決することができますが、私はすべての場合に適合しないため継承を使用したくありません。

+0

このパターンはメソッドと呼ばれます。)メソッドは再利用可能なコードです。 –

+0

それは私が求めていたものではありません。複数の作業単位間でロジックを共有するパターンはありますか?共有コードは嘲笑する必要があります。そのヘルパークラスの束にコードをダンプするのは簡単ですが、それは私が探していたものではありません。私が思いつくことのできる解決策は、作業単位が要求する特定の論理のためのクラスであるビジネスロジックファクトリを持つことです。これが最善のパターンかどうかはわかりません。私はこれが一般的なシナリオであると確信しており、他の人がこの問題にどのように取り組んでいるかを知りたいと思っていました。 – Anish

+0

私はあなたがUnitOfWorkパターンを誤解していると思います.UOFは一連の操作をアトミック(単純な言葉で表す)と見なすことができるスコープです。.NET TransactionScopeクラスはデータアクセスのUOCの例です。だからスコープです。あなたが書いたことから、あなたはUOCをある種のWorkFlow elemntとして理解していたようです。 –

答えて

0

ロジックをクラスに入れ、両方の作業単位にアクセスさせます。どちらの例もPurchaseOrderRepositoryクラスに属しているようです。コントロールの反転を使用すると、それを嘲笑することができます。

関連する問題