Questa è una cattiva pratica? Metodi di sovraccarico per interfaccia generica e restituzione di diversi tipi
Domanda
Come follow-up a questa domanda:
Una cattiva pratica per restituire diversi tipi durante il sovraccarico di un metodo?
Sto pensando a un'interfaccia mapper molto semplice che sto usando:
public interface IMap<T,U>
{
U MapFrom(T obj);
T MapFrom(U obj);
}
Questo è forse un esempio più mirato della discussione della domanda nota. Un'istanza che implementa questa interfaccia solo mappe tra i tipi.
Potrei farlo in questo modo:
public interface IMap<T,U>
{
U MapRight(T obj);
T MapLeft(U obj);
}
Ma sembra sciocco perché, concettualmente, la nozione di a e da Non applicare davvero al mio mapper generico qui. È solo una mappa bidirezionale. Quindi, per complimentarmi con la domanda collegata:
Questa mappa generica è una cattiva pratica?
Come dovrei nominare metodi per evitare di restituire diversi tipi senza compromettere la "generosità" dell'interfaccia?
MODIFICARE: Inoltre, in risposta a una risposta, questo è Per Mapper (non che sia davvero rilevante). Semplicemente non includo il metodo di mappatura nell'interfaccia.
EDIT2: Suppongo che la stessa domanda si applicherebbe se avessi un mapper a direzione singola (o adattatore), quindi l'ho implementato due volte per le due direzioni ... Nome stesso metodo, tipo di ritorno diverso.
Nessuna soluzione corretta