1

Service Layer - Repository (Nhibernate) を使用する MVC3 アプリケーションで、Spring.Net を DI として使用しています。

私のサービスレイヤーでは、一連の責任パターンを使用しており、一連のルール (共通インターフェース Rule1、Rule2、Rule3 を実装するオブジェクト) を初期化したいと考えています。ルールを実装する各クラスは、名前とともに Sequence とともに DB に格納され、追加または削除できます。例
Rule1 : IRule
Rule2: IRule
Rule3 : IRule

私のSpring構成には、クラス名をIDとして持つすべてのルールの定義があります。

私のサービス層では、すべてのルール名を抽出し、各ルールを初期化し、シーケンスに基づいてルールを次々と実行する必要があります。私のサービス レイヤー コードは Spring に関連付けるべきではないため、ここでは Service Locator パターンを使用したくありません。

以下のように各ルールにアクセスしたい。ルール ファクトリ オブジェクトを介して。

public class ServiceLayer 
{
     public Constructor ServiceLayer(IRuleFactory ruleFactory)
     { 
        //Rule factory injected using Spring
     }


     var rules = fetchRulesFromRepoitory();
     foreach( rule in rules)
     {
        var ruleclass =  ruleFactory.GetObject("rule.Name");
        ruleclass.Execute();
     }

}

rulefactory 内では、構成で既に定義されているルール オブジェクトにアクセスする最善の方法は何でしょうか。

IApplicationContext.GetObject("Rule1") 

つまり、私はここで春に縛られているということです。私は春にFactoryObjectの形でいくつかのサポートがあると考えました.IDを使用してSpringフレームワークによってすでに初期化されている各Ruleオブジェクトへのアクセスを返すように構成できるかどうかわかりません..
または動的オブジェクトを作成するときのより良い方法..

4

1 に答える 1