作为这个问题的后续:
重载方法时返回不同类型是一种不好的做法吗?
我正在考虑我正在使用的一个非常简单的映射器界面:
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的概念并不真正适用于我的通用映射器。这只是一个双向映射。所以,为了补充链接的问题:
这个通用地图是不好的做法吗?
我应该如何命名方法以避免返回不同的类型而不影响接口的“通用性”?
编辑:另外,作为对答案的回应,这是针对映射器的(并不是真的相关)。我只是没有在界面中包含映射方法。
EDIT2:我想如果我有一个单向映射器(或适配器),我想同样的问题会适用,然后我为两个方向实现了两次......相同的方法名称,不同的返回类型。