public static IProcessor ObterProcessador(TipoProcessamento tipoProcessamento) { IProcessor processador = null; if (processadores.TryGetValue(tipoProcessamento, out processador)) { return(processador); } else { throw new Exception($"Não foi possível obter um processador do tipo {tipoProcessamento.ToString()} pois não foi registrado"); } }
public static void Registrar <T>(T processador, TipoProcessamento tipoProcessamento) where T : IProcessor { if (processadores.TryAdd(tipoProcessamento, processador) && !processador.Registrado) { processador.Registrar(); Console.WriteLine($"O processador {processador.GetType().Name} foi registrado para o tipo de processamento {tipoProcessamento.ToString()}"); } }