Мне интересно узнать о лучшей практике здесь. Является ли хорошей практикой метод фабрики возвращать null, если он не может создать что-либо? Вот пример:Возможно ли, чтобы метод фабрики возвращал значение null?
ICommand command = CommandFactory.CreateCommand(args);
if (command != null)
command.Execute();
else
// do something else if there is no command
Альтернативой было бы вернуть NullCommand
или что-то, я думаю, но что лучше практика?
Согласен с @Jon Skeet. Create подразумевает конструктор, и вы не ожидаете ни одного из них, так что маловероятно, что вы проверите, чтобы убедиться, что это так. –
@TonyHopkinson: С другой стороны, вы также не ожидали бы исключения из конструктора. –
@TimSchmelter: Почему бы и нет? Я бы * абсолютно * ожидал исключения из конструкторов в определенных ситуациях - 'FileStream' был классическим примером ...или что-либо с параметрами, которые могут быть недействительными в любой форме, например. давая нулевую ссылку на что-то, ожидающее ненулевой ссылки. –