화면 기반 메뉴 탐색을 우아하게 처리하기위한 디자인 패턴이나 전략을 권장 할 수 있습니까?메뉴 탐색을위한 디자인 패턴 (c/C++)
여기서 "화면 기반"은 게임의 사용자 인터페이스와 같이 다른 "화면"에 링크되는 일련의 상호 연결된 전체 화면 "페이지"를 의미합니다.
필자는 권장하지 않는 State 기반 디자인 패턴을 구현했습니다.
코드가 지저분 해지고 테스트하기가 점점 어려워지는 모든 종류의 상태 기반 버그에 취약 해집니다.
예 :
void InitState()
{
switch(nextState)
{
case kScreenC:
if(curState == kScreenA)
ScreenC.InitFromA();
if(curState == kScreenB)
ScreenC.InitFromB();
etc...
}
}
: 당신이 항목의 조건을 처리 할 필요가 끝낼 수 있습니다이 방법 또한
void Update(float dt)
{
switch(curState)
{
case kScreenA:
ScreenA.Update(dt);
if(ScreenA.IsDone())
{
if(ScreenA.ReturnState == 1)
curState = kScreenB;
if(ScreenA.ReturnState == 2)
curState = kScreenC;
etc...
}
}
}
: 당신이 반환 조건을 처리 할 필요가 결국이 방법으로
void Update(float dt)
{
switch(curState)
{
case kScreenA:
ScreenA.Update(dt);
if(ScreenA.IsDone())
curState = kScreenB;
break;
etc...
}
이렇게 설계하는 더 좋은 방법이 있어야합니다. 더 나은 방법을 설명 할 수 있습니까? GUI를 구현
건배,
slushduck