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;
}
}