Ho una classe DevelopmentConsole. Sto facendo funzionalità per registrare i comandi della console per i sottosistemi. Non voglio che la console sappia di loro ma anche che non voglio che contengano un codice di debug (come "Console.RegisterCommand ...").
Penso che dovrei fare un'ipotesi di classe in più. Per un esempio ho la classe Player.
IConsoleBuilder {
RegisterCommand(string command, Func<string[], string> action);
}
PlayerConsoleBuilderClient : ConsoleBuilderClient {
readonly Player _player = ?inject?
public override void Visit(IConsoleBuilder builder) {
// builder.RegisterCommand("GetName", args => _player.Name) ;
}
}
Qui devo usare Reflection per trovare tutte le sottoclassi di ConsoleBuilderClient. Non è una buona idea, vero?
Puoi suggerire come farlo in un modo migliore?