-2

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) のコピーを常に作成し、コピーを変更してから返すほうがよいでしょうか? マルチスレッドの安全性を保証する最善の方法はありますか?

任意のヘルプをいただければ幸いです。ホレス

4

1 に答える 1