Много раз я пишу функцию, которая возвращает true
в случае успеха и false
в случае ошибки / сбоя, и, по сути, оборачивает другую функцию, которая делает то же самое.
Пример (в основном язык-независимо, но я напишу в ECMAScript для ознакомления):
function SendEmail(to, from, subject, body) {
var eml = new EmailObj();
eml.To = to;
eml.From = from;
eml.Subject = subject;
eml.Body = body;
return eml.Send(); // This will return true/false
}
Но иногда я хочу сделать что-то еще в зависимости от результата внутренней функции (скажем, специфической для журнала информации):
function SendEmail(to, from, subject, body) {
var eml = new EmailObj();
eml.To = to;
eml.From = from;
eml.Subject = subject;
eml.Body = body;
if(!eml.Send()) {
Log("Error in send: " + eml.Response);
return false;
}
return true;
}
Но я никогда не чувствую, что написал хороший код, когда делал что-то подобное.
Не могли бы вы написать по-другому?Я параноик?Или вы думаете, что эта модель сама по себе приводит к этой дилемме, и я должен посмотреть, смогу ли я изменить подход (ы) более высокого уровня?