在編寫小函數時,我經常會遇到這樣的情況:某些函數只能傳遞給不同的小函數來實現其功能。何時檢查功能/方法參數?
例如(C#語法-ish):
public void FunctionA(object param)
{
DoA(param);
DoB(param);
DoC(param);
// etc.
}
private void DoA(object param)
{
DoD(param);
}
private void DoD(object param)
{
// Error if param == null
param.DoX();
}
所以參數沒有被調用的函數內使用,但「地方」在那做的工作的小功能深處。
那麼最好檢查一下我的param-Object是否爲空?
當泛函檢查:
臨: -there是通過採用另外的方法,其最終會做什麼,因爲對象是空的開銷。
Con: - 我的語法上美妙的FunctionA被醜陋的驗證代碼弄髒了。
當檢查僅當使用PARAM對象:
臨: - 我的語法精彩泛函保持一個快樂閱讀:)
缺點: -there將通過開銷調用該方法會不做任何事情,因爲參數對象爲空。 - 進一步的缺點我目前沒有考慮。
這被稱爲咖喱功能 - 雖然有點過於簡化。 http://en.wikipedia.org/wiki/Currying – 2012-08-10 08:20:43