java創建不可變類的規則

  1. State of immutable object can not be modified after construction, any modification should result in new immutable object.
  2. All fields of Immutable class should be final.
  3. Object must be properly constructed i.e. object reference must not leak during construction process.
  4. Object should be final in order to restrict sub-class for altering immutability of parent class.

要寫出Immutable類,需要遵循以下幾個原則:

1)immutable對象的狀態在創建之后就不能發生改變,任何對它的改變都應該產生一個新的對象。

2)Immutable類的所有的屬性都應該是final的。

3)對象必須被正確的創建,比如:對象引用在對象創建過程中不能泄露(leak)。

4)對象應該是final的,以此來限制子類繼承父類,以避免子類改變了父類的immutable特性。

5)如果類中包含mutable類對象,那么返回給客戶端的時候,返回該對象的一個拷貝,而不是該對象本身(該條可以歸為第一條中的一個特例)

使用Immutable類的好處:
1)Immutable對象是線程安全的,可以不用被synchronize就在并發環境中共享

2)Immutable對象簡化了程序開發,因為它無需使用額外的鎖機制就可以在線程間共享

3)Immutable對象提高了程序的性能,因為它減少了synchroinzed的使用

4)Immutable對象是可以被重復使用的,你可以將它們緩存起來重復使用,就像字符串字面量和整型數字一樣。你可以使用靜態工廠方法來提供類似于valueOf()這樣的方法,它可以從緩存中返回一個已經存在的Immutable對象,而不是重新創建一個。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容