Nel mio progetto ho diversi tipi di entità.
Ottengo i dati per queste entità in file di testo da una terza parte.
Ho scritto una classe per leggere e analizzare questi file di testo, usando il modello di strategia.
Il metodo in questa classe deve restituire diversi tipi di entità, quindi ho reso l'intera classe generica, qualcosa del genere:
public class Parser<T>
{
public IStrategy<T> strategy { get;set;}
public IEnumerable<T> LoadFromFile()
{
// implementation details, not interesting
}
}
Ma il problema è che ora ho bisogno di una nuova istanza di Parser per ogni entità che carico, quindi ho cambiato la mia implementazione iniziale in questo:
public class Parser
{
public IEnumerable<T> LoadFromFile(IStrategy<T> strategy)
{
// implementation details, not interesting
}
}
Quindi, questo è ancora considerato come un'implementazione del modello di strategia?
Se no, c'è un modo in cui potrei restituire IEnumerable<T>
senza dover specificare che tipo T
è effettivamente ovunque ma in IStrategy<T>
?