Jakie podejścia podejmują ludzie (jeśli występują) w zarządzaniu eksplozją na zajęciach w klasie guard clause? Na przykład:Refaktorowe klauzule strażnicze
public void SomeMethod<T>(string var1, IEnumerable<T> items, int count)
{
if (string.IsNullOrEmpty(var1))
{
throw new ArgumentNullException("var1");
}
if (items == null)
{
throw new ArgumentNullException("items");
}
if (count < 1)
{
throw new ArgumentOutOfRangeException("count");
}
... etc ....
}
W projekcie, nad którym obecnie pracuję, istnieje wiele klas, które mają podobny zestaw klauzul ochronnych na publicznych metodach.
Jestem świadomy kontraktów kodu .NET 4.0, jednak obecnie nie jest to opcja dla naszego zespołu.
Po prostu napisałem to samo. Jedyny problem polega na tym, że metoda ta znajduje się na początku śledzenia stosu w porównaniu do metody początkowej u góry, a nie, że jest tak ogromna. Ten wzorzec oczywiście może być użyty dla różnych typów, aby sprawdzić zakres wartości, itp. –
Tak, to jedyny problem, jaki kiedykolwiek miałem z tym.Chociaż łatwo znaleźć oryginalną metodę wywołania. –
Jest to w zasadzie to samo, co klasy imitujące umowy kodu. –