Удалить повторяющийся вызов функции до выхода из функции контейнера - PullRequest
0 голосов
/ 31 марта 2011

Рассмотрим следующий фрагмент кода:

void MyFun()
{
SetMe();
// more code
if (.. )
{
 UnSetMe();
return;
}
// more codes
if ( .. )
{
 UnSetMe();
return ;
}
// more code
UnSetMe();
}

Как видите, функция сначала вызывает SetMe (), а затем перед завершением вызывает UnSetMe ().Теперь немного громоздко добавлять UnSetMe () во все места, где должна быть завершена функция, и в некоторых местах ее можно пропустить по ошибке.

Что было бы улучшенным дизайном для обработки такой ситуации.

1 Ответ

1 голос
/ 31 марта 2011

Вы можете вызвать MyFun () из MyWrapperFun (), а затем вызвать UnsetMe () после:

void MyWrapperFun()
{
    MyFun();
    UnsetMe();
}
...