Я пытаюсь найти схему, чтобы избежать дублирования кода в ситуации, аналогичной приведенной ниже:
std::list<int> error_list;
void validate()
{
if( validate_0001() == false )
{ error_list.push_back(1); }
if( validate_0002() == false )
{ error_list.push_back(2); }
...
}
Метод validate является общедоступным в классе, ответственном за выполнение различных действий, в примерах валидаций, каждый из которых имеет уникальный идентификатор. Я хочу иметь возможность добавлять новое действие, просто расширяя базовый класс, без необходимости создавать новый метод и добавлять его вызов и обработку ошибок в методе validate.