単一のプライベートオブジェクト変数(たとえば、)の状態を中心に構築されたクラスを想像してください。Map<Something>
このクラスのすべてのメソッドは、そのオブジェクトを取得、設定、または変更しています。
2つの同期アプローチのどちらがあなたの心の中でより良いですか?おそらく、3番目のより良いオプションがあります。
- オブジェクトをカプセル化するクラスのすべてのメソッドを同期するか、変更するオブジェクトで同期します
- オブジェクトをカプセル化するクラスのインスタンスにアクセスするすべてのメソッドを同期させます。
つまり、内側から同期するのが良いのでしょうか、それとも外側から同期するのが良いのでしょうか。