Design pattern that can replace chained switch/goto?

У меня есть код для обновления ресурсов моего приложения до текущей версии. Этот код вызывается после обновления приложения.

int version = 1002;   // current app version

switch(version)
{
   case 1001:
      updateTo1002();
      goto case 1002;

   case 1002:
      updateTo1003();
      goto case 1003;

   case 1003:
      updateTo1004();
      goto case 1004;
      break;

   case 1004:
      updateTo1005();
      break;
}

Здесь у нас есть вызов каскадного метода путем перехода к указанному блоку case. Интересно - это хорошая практика для использования go to (часто считается такой плохой практикой!) В этом случае? Я не хочу вызывать метод один за другим - вот так:

updateTo1002()
{
   // do the job
   updateTo1003();
}
updateTo1003()
{
   // do the job
   updateTo1004();
}

Есть ли какой-либо шаблон проектирования, описывающий такую ​​проблему?

28
задан Merlyn Morgan-Graham 27 October 2010 в 22:11
поделиться