Java オブジェクトへの副作用を回避する方法について質問があります。クラスMyObjectのインスタンスmyObjectがあるとします。メソッド/コマンドのチェーンを介してmyobjectを処理したいのですが、各コマンド レベルで、メソッド/コマンドが計算したものでmyObjectを強化したいと考えています。
myObjectがインスタンスであるクラスは次のとおりです。
public class MyObject {
private int resultOfCommand1;
private int resultOfCommand2;
private int resultOfCommand3;
private int resultOfCommand4;
....
....
}
myObjectを処理する必要があるメソッド/コマンドは次のとおりです。
private MyObject command1(MyObject myObject) {
return myObject.setRresultOfCommand1(1);
}
private MyObject command2(MyObject myObject) {
return myObject.setRresultOfCommand2(2);
}
private MyObject command3(MyObject myObject) {
return myObject.setRresultOfCommand3(3);
}
private MyObject command4(MyObject myObject) {
return myObject.setRresultOfCommand4(4);
}
したがって、上記の設計には副作用があり、そのようなことは避けたいと思います。
副作用を避ける最善の方法を誰か教えてくれませんか? パラメーターとして渡されたオブジェクト (この場合は myObject) のコピーを常に作成し、コピーを変更してから返すほうがよいでしょうか? マルチスレッドの安全性を保証する最善の方法はありますか?
任意のヘルプをいただければ幸いです。ホレス