Questa è una cattiva pratica? Metodi di sovraccarico per interfaccia generica e restituzione di diversi tipi

StackOverflow https://stackoverflow.com/questions/5954122

  •  07-11-2019
  •  | 
  •  

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top