при написании небольших функций Я часто сталкиваюсь с тем, что некоторые параметры передаются функции, которая сама передает их только разным небольшим функциям для достижения своей цели.
Например (синтаксис 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 нулевым?
При проверке в функции A:
Pro:
- Нет никаких накладных расходов за счет использования других методов, которые, наконец, ничего не сделают, потому что объект равен нулю.
Con:
-Мой синтаксически замечательный FunctionA испачкан уродливым кодом проверки.
При проверке только при использовании param-объекта:
Pro:
-Мой синтаксически замечательный FunctionA радостно читает:)
Минусы:
-При вызове методов, которые ничего не будут делать, будут издержки, потому что param-объект равен нулю.
-Другие минусы, о которых я сейчас не думаю.