나는 나의 첫 번째 asp.net mvc 웹 응용 프로그램에서 일하고있다. 나는 14 개 주에있을 수있는 양식을 가지고 있으며 현재 상태에 따라 다른 주로의 전환이 가능하거나 불가능합니다. 각 현재 상태에 대해 평균 3-5 가지 차이가 가능합니다.상태 머신 내장 스위치
지금해야 할 일은 일부 상태 전환 중에 트리거 동작입니다. 초기 상태 및 최종 상태에 따라 일부 작업이 처리됩니다 (예 : 전자 메일 전송).
내가 스위치 문을 사용하여이 작업을 시작 :switch ((int)currentState)
{
//Initial
case -1:
{
switch ((int)nextState)
{
//Next state: Inv. is waiting
case 1:
{
//Send email to x
emailHelper.Send(x,msg)
//Send email to Y
emailHelper.Send(y,anotherMsg)
}
case 2:
{
doSomethingelse()
}
break;
}
break;
}
//Inv is waiting
case 1:
{
switch ((int)nextState)
{
...
}
}
...
내가이 솔루션은 나를 위해 잘 작동 것이라고 생각하지만, 내가 뭔가 better..Any 제안을 사용할 수 있는지가 궁금?
. 첫 번째 다이어그램 [여기] (https://www.codeproject.com/Articles/509234/The-State-Design-Pattern-vs-State-Machine)과 같은 것입니다. – itsme86
하지만 내가 트리거해야하는 동작은 실제 상태가 아닌 상태 전환에 기반을두고 있습니다. –
왜 State Design 패턴이 그 시나리오에서 작동하지 않는지 알 수 없습니다. 'ConcreteState'와 그 책임에 대한 기사의 부분을 읽으십시오. – itsme86