返回 void 但更改其参数状态(即提供隐藏或隐式返回值)的方法通常是一种不好的做法吗?
我发现它们很难模仿,这表明它们可能是糟糕设计的标志。
有哪些模式可以避免它们?
一个非常人为的例子:
public interface IMapper
{
void Map(SourceObject source, TargetObject target);
}
public class ClassUnderTest
{
private IMapper _mapper;
public ClassUnderTest(IMapper mapper)
{
_mapper = mapper;
}
public int SomeOperation()
{
var source = new SourceObject();
var target = new TargetObject();
_mapper.Map(source, target);
return target.SomeMappedValue;
}
}