Позвольте мне начать с того, что я не защищаю этот подход, но я видел его недавно, и мне было интересно, есть ли имя для него, которое я мог бы использовать, чтобы указать на виновную сторону. Так вот.Есть ли название для этого запаха анти-шаблона/кода?
Теперь у вас есть метод, и вы хотите вернуть значение. Вы также хотите вернуть код ошибки. Конечно, исключения - намного лучший выбор, но по какой-то причине вы хотите вместо этого код ошибки. Помни, я играю адвоката дьявола здесь. Таким образом, вы создать общий класс, например:
class FunctionResult<T>
{
public T payload;
public int result;
}
А затем объявить свои функции, как это:
FunctionResult<string> MyFunction()
{
FunctionResult<string> result;
//...
return result;
}
Один из вариантов на этой модели является использование перечисления для кода ошибки вместо строки , Теперь вернемся к моему вопросу: есть ли имя для этого, и если да, то что это?
«Кто-то, кто не идиот, сломает мои пальцы молотком, когда увидит этот« узор ». Но это в значительной степени относится ко всем антипаттернам. – Will 2008-09-16 14:15:08
Если это анти-шаблон, то какова рекомендация для языков, которые не поддерживают прямую поддержку исключений (я думаю о VB/VBA). – 2008-09-16 14:41:42
Если они не поддерживают исключения, они, вероятно, также не поддерживают шаблоны/дженерики. – 2008-09-16 15:17:59