回答
寫public
吸氣但沒有public
制定者。並且該字段本身private
而該字段的類型必須是不可變的。 –
如果該字段的類型不可變,您可以始終返回其深層副本而不是其自身的引用,以確保該字段不能被其他人修改。 – MrSmith42
簡而言之,稱爲immutable object
,Object
的狀態在構建後不能更改。
String
是不可變的Class
的常見例子。
做一個class
immutable
通過以下各項
- 確保類不能
overridden
- 使class
final
,或使用static
工廠,並保持構造私有。 - 使字段
private
和final
- 力呼叫者在單個步驟中的, 代替使用
no-argument constructor
隨後 調用setXXX
方法結合完全構造的對象。 - 沒有提供可以以任何方式改變對象 的狀態的任何方法 - 不只是
setXXX
方法,但可以改變 狀態 - 如果類具有可變對象字段的任何方法,那麼他們必須 在類和其調用者之間傳遞時進行防禦複製。
實例化一個單獨的樣板代碼可以在很多地方都可以找到,例如見http://www.javacoffeebreak.com/articles/designpatterns/index.html
要知道,許多人認爲單是一個反模式,因爲它是相當難以擺脫的,一旦你的應用程序充斥着對單身人士的引用。
有人建議「公共獲得者,但沒有私人領域的公共設置者」。
注意:如果該字段是原始類型,這將僅適用。
如果它是帶setter的對象,則內容仍然可以修改;因此不是隻讀的。
有趣的是,看到Java語言提供了一些構造,使返回類型只讀而不必進行深度複製/克隆。
我很喜歡 只讀getEmployee的成像(){ ...}
- 1. 單身人士訪問私人方法訪問公共方法
- 2. 公共和私人訪問修飾符
- 3. Javascript:從私人函數訪問公共變量
- 4. 公共變量訪問
- 5. 訪問私人模塊變量從類
- 6. 訪問其他公共類的變量
- 7. javascript私人變量訪問問題
- 8. Github:只讀訪問私人回購
- 9. 公共訪問私人npm模塊從私人github回購
- 10. 如何從公共/私人類訪問HashMap數據
- 11. PHP從兒童私人變量訪問
- 12. 私人和公共變量
- 13. 通過公共方法訪問私有成員變量
- 14. JavaScript的私有函數訪問公共變量
- 15. 通過公共屬性訪問私有變量
- 16. 公共變量無法訪問
- 17. 訪問公共靜態變量
- 18. 訪問公共對象變量
- 19. 無法訪問公共變量 - Excel VBA
- 20. 公共靜態變量訪問
- 21. 如何從子類訪問主類的公共常量變量?
- 22. 如何從公共方法訪問局部變量私人方法在C#
- 23. 訪問表單模塊中的變量的公共和私人修改器
- 24. Ruby私有和公共訪問者
- 25. Rails的公共/私有訪問
- 26. 公共類,但私有成員變量?
- 27. 訪問Java中沒有公共訪問器的私有成員
- 28. GHUnit訪問私有變量
- 29. PHP私有變量訪問
- 30. WP7 - 訪問私有變量
你是什麼意思與 「它的實例」?是否只有一個類的實例? (單身) – flup
是的,這就是我的意思。 – th3falc0n