很多時候,我正在寫一個函數,它會在成功時返回true
,並在錯誤/失敗時返回false
,並且基本上包裝另一個執行相同操作的函數。更好的方式來返回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;
}
但是,我從來沒有覺得我已經寫了良好的代碼時,我做這樣的事情。
你會寫這個不同嗎?我是偏執狂嗎?或者你認爲這種模式本身會導致這種困境,我應該看看能否改變更高層次的方法?
對我來說很好 – paullb 2010-11-17 00:11:52