技術メモ/アンチパターン/オブジェクト汚染

1月 1, 2003 · Posted in アンチパターン, 技術メモ · Comment 

引数で受け取ったオブジェクトのプロパティを、メソッドの内部で変更すること。

オブジェクト汚染メソッド

public void getData(DataDto dataDto){
dataDto.dataList = Service.getData();
}

呼び出し側

public void service(){
DataDto dataDto = new DataDto();
getData(dataDto);
}

この実装方法は、たぶんC++の流れ。これをやられると、呼び出し側を見ても何がおきているのかまったくわからない。
最近は保守の案件ばかり引き受けているため、2000年〜2003年くらいにカットオーバーされたシステムとよく出会う。するとたいていこのパターンに出会う。
-可読性最悪
-保守性最悪
-テストできない