Mam starą klasę strażniczą - to stałe lub statyczne metody, typowe dla klasy użytkowej.Metody statyczne w instancji klasy - dobre, złe lub zależne?
Jednak ostatnio zacząłem używać NLog - więc moi strażnicy mogą teraz logować się i rzucać. Chodzi o to, ze nlog że każda klasa wywołujący (gdzie przebywa strażnik) tworzy własny rejestrator, więc zamiast metody takie jak to:
public static void NotNull<T>(T obj, string param)
{
if (obj.Equals(null))
throw new ArgumentNullException(param);
}
Mam metodę z podpisem jak ten:
public static void NotNull<T>(T obj, string param, Logger logger, LogLevel logLevel)
{
}
Teraz wszystkie moje metody zawierają dwa takie same parametry związane z rejestratorem, więc prawie zdecydowałem, że wstrzyknięcie zależności byłoby lepszym rozwiązaniem, przekazując rejestrator do konstruktora i przechodząc do metody.
Pytanie, które mam, opiera się na moim niedoświadczeniu - moja nowa klasa nie będzie statyczna, ale czy powinienem pozostawić metody w środku jako statyczne?
Nie musisz tworzyć nowej instancji rejestratora dla każdej instancji klasy. Spójrz na [tę odpowiedź] (http://stackoverflow.com/a/9071875/728795) na przykład, dobrze jest mieć pole statycznego rejestratora, lub jakiś dostawca dziennika – Andrei
Twoja metoda "NotNull" zgłasza wyjątek NullReferenceException 'jeśli 'obj' ma wartość null, a nie' ArgumentNullException'. – Lee
@Andrei Jeśli nie używasz rejestratora dla każdej klasy, dzienniki nie są tak szczegółowe w odniesieniu do przestrzeni nazw. –