Me pregunto acerca de las mejores prácticas aquí. ¿Es una buena práctica que un método de fábrica devuelva nulo si no puede crear nada? He aquí un ejemplo:¿Está bien que un método de fábrica devuelva nulo?
ICommand command = CommandFactory.CreateCommand(args);
if (command != null)
command.Execute();
else
// do something else if there is no command
Una alternativa sería la de devolver un NullCommand
algo o, supongo, pero ¿cuál es la mejor práctica?
De acuerdo con @Jon Skeet. Crear implica constructor, y no espera un nulo de uno de ellos, por lo que es poco probable que verifique si eso fue lo que hizo. –
@TonyHopkinson: Por otro lado, tampoco esperarías una Excepción de un constructor. –
@TimSchmelter: ¿Por qué no? Me gustaría * absolutamente * esperar una excepción de los constructores en ciertas situaciones - 'FileStream' es un ejemplo clásico ...o cualquier cosa con parámetros que pueden ser inválidos en cualquier forma, p. dando una referencia nula a algo que espera una referencia no nula. –