如果我有一個B類擴展A和一個我有一些領域,我也使用B中,最好是讓這些字段受到保護,並從B類中調用它們或爲這些字段寫入getter方法,然後使用B類中的這個方法? (此字段在A的constuctor設置好的)
Q
好的設計:如何超
7
A
回答
2
如果你喜歡干將公衆成員的數據顯示在您的界面(你應該),然後使用受保護的getter出於同樣的原因。像公共客戶一樣,子類是不受控制的類,不需要對內部進行無限制的訪問。
1
在我看來,我知道很多人會不同意,如果這些類全部由您實現,最好使用protected
對象/變量,因爲它可以讓您更好地控制擴展超類的類的內部。我不會太擔心封裝問題,因爲你控制了整個源代碼。
如果類需要由別人誰不會有類的源進行擴展,我會建議使用干將,如果有必要,並儘可能甚至避免這種情況。
1
我認爲使用getter和setter方法始終是更好的選擇,即使是在同一個班!原因很簡單。想要以您訪問該領域的方式更改任何內容的圖像。
例如你訪問保存了值的int。現在由於某些原因,您希望在訪問它們之前將此值始終乘以2。如果您使用的存取方法,你簡單的改變你的方法:
private int test = 5;
public int getValue() {
return test;
}
到
public int getValue() {
return test * 2;
}
如果你想在同一時您可以直接訪問現場測試,你有大的問題,當你想改變這樣的的東西。
相關問題
- 1. 如何拿出好的設計?
- 2. 如何從差到好的OOP設計?
- 3. 如何使用設計配置超時?
- 4. 抑制超類的功能,是好設計嗎?
- 5. 如何設計一個好的審計算法?
- 6. org.json.simple.JSONArray設計不好?
- 7. 與角JS好的設計
- 8. 更好的課堂設計
- 9. 好的UITableView設計圖庫
- 10. 很好的繼承設計
- 11. 這是不好的設計?
- 12. 良好的泛型設計
- 13. Grails。如何設置會話的超時間隔。哪個更好?
- 14. 是引用計數好的設計
- 15. 如何設計表方便插入和選擇,以及良好的設計
- 16. 設計 - 超時工作不
- 17. 設計超級用戶
- 18. 504設計網關超時
- 19. 良好的UI設計:如何處理空的ListView?
- 20. 哪些設計更好?
- 21. objc'iskKindOfClass:'表示設計不好?
- 22. 數據庫設計不好
- 23. Api URI設計偏好
- 24. 設計好友關係
- 25. 如何設計3級超級菜單中的元素
- 26. 如何設計一個超過500頁的wpf應用程序
- 27. 如何設計忘記密碼的超鏈接
- 28. 我如何設計一個特定的超類
- 29. 如何設計一個好的JWT認證過濾器
- 30. 不確定如何拿出一個好的設計
可能重複:http://stackoverflow.com/questions/2279662/java-protected-fields-vs-public-getters – smas 2011-03-19 12:49:40