この質問のフォローアップとして:
Is a bad practice to Return different types when overloading a method?
私が使用している非常に単純なマッパーインターフェースについて考えています:
public interface IMap<T,U>
{
U MapFrom(T obj);
T MapFrom(U obj);
}
これはおそらく、指摘された質問の議論のより的を絞った例です。このインターフェースを実装するインスタンスは、タイプ間でマップするだけです。
私はこのようにすることができます:
public interface IMap<T,U>
{
U MapRight(T obj);
T MapLeft(U obj);
}
しかし、それはばかげているように思えます。なぜなら、概念的には、toとfromの概念は、ここにある私の汎用マッパーには実際には当てはまらないからです。ただの双方向マップです。それで、リンクされた質問を補完するために:
Is this general map bad practice?
インターフェイスの「ジェネリック性」を損なうことなく、異なる型を返さないようにするには、どのようにメソッドに名前を付ける必要がありますか?
編集:また、回答に応じて、これはマッパー用です(実際に関連しているわけではありません)。インターフェイスにマッピングメソッドを含めないだけです。
EDIT2:単方向マッパー(またはアダプター)があり、2方向に2回実装した場合、同じ質問が当てはまると思います...同じメソッド名、異なる戻り値の型。