定義不可變類的規則

以下規則定義了用於建立不可變物件的簡單策略。

  1. 不要提供 setter 方法 - 修改欄位引用的欄位或物件的方法。
  2. 使所有欄位成為最終和私有。
  3. 不允許子類重寫方法。最簡單的方法是將類宣告為 final。更復雜的方法是使建構函式私有並在工廠方法中構造例項。
  4. 如果例項欄位包含對可變物件的引用,則不允許更改這些物件:
  5. 不要提供修改可變物件的方法。
  6. 不要共享對可變物件的引用。永遠不要儲存對傳遞給建構函式的外部可變物件的引用; 如有必要,建立副本並儲存對副本的引用。同樣,必要時建立內部可變物件的副本,以避免在方法中返回原始物件。