のように実装された従来のステートマシン/ファクトリーがあるとしましょう
public class StateMachine
{
public void ProcessState(StateEnum CurrentState)
{
switch (CurrentState)
{
case StateEnum.New:
ProcessNewState();
break;
case StateEnum.Waiting:
ProcessWaitingState();
break;
++++ More states.....
}
}
void ProcessWaitingState()
{
//Do State work
}
void ProcessNewState()
{
//Do State work
}
}
しかし、今はベスト プラクティス (TDD、SOLID...) と構造マップを使用してこれを実装したいと考えています。
単一責任の原則に従うために、各状態の処理コードを別々のクラスに入れたいと思います。また、各クラスには固有の依存関係の独自のセットがあり、それら自体がかなり複雑になる可能性があります。したがって、それらを別々のクラスに入れるのは良い考えだと思います。
では、Structuremapでこれを適切に行うにはどうすればよいですか?
これは基本的に、Objectfactory に変換したい Factory クラスであることを知っています。
私は最新の Structuremap バージョン 2.54 を使用しています。このバージョンでは、ForRequestedType の使用など、多くのことが非推奨 (または推奨されなくなった) ようです。そのため、新しい表記法を使用してこれを行う正しい方法を探しています。