Zastanawiam się nad najlepszą praktyką tutaj. Czy w przypadku metody fabularnej dobrą metodą jest zwracanie wartości null, jeśli nie można jej utworzyć? Oto przykład:Czy metoda fabryka zwraca wartość NULL?
ICommand command = CommandFactory.CreateCommand(args);
if (command != null)
command.Execute();
else
// do something else if there is no command
Alternatywą byłoby zwrócić NullCommand
lub coś, myślę, ale to, co jest najlepsze praktyki?
Zgadzam się z @Jon Skeet. Create implikuje konstruktor i nie oczekujesz wartości zerowej od jednego z nich, więc jest mało prawdopodobne, abyś sprawdził, czy to było to, co zrobił. –
@ TonyHopkinson: Z drugiej strony, nie spodziewałbyś się wyjątku od konstruktora. –
@TimSchmelter: Dlaczego nie? Absolutnie * oczekiwałbym wyjątku od konstruktorów w pewnych sytuacjach - 'FileStream' jest klasycznym przykładem ...lub czegokolwiek z parametrami, które mogą być nieprawidłowe w dowolnej formie, np. podając zerowe odwołanie do czegoś, co może wymagać odwołania o wartości innej niż zerowa. –