Attualmente ho classe Context
che inserisco in alcuni punti del mio codice, come:
protected override object GenerateSomething (object input, Context ctx)
A seconda del contesto, il metodo Generate
dà risultati diversi.
Ma sarebbe meglio creare un'interfaccia IGeneratorContext
come questa:
public interface IGeneratorContext
{
ISomething1 GetX ();
ISomething2 GetY ();
}
E modifica la firma del metodo in questo modo:
protected override object GenerateSomething (object input, IGeneratorContext ctx)
E passerò ancora oggetto Contesto a questo metodo. Naturalmente aggiungo l'interfaccia IGeneratorContext alla classe Context. Così ora passerò lo stesso oggetto, ma come interfaccia con meno metodi esposti.
È una buona idea?