Android~安卓開發中javaBean是推薦get/set還是聲明public?

做過J2EE的同學開發中應該經常遇到javaBean這種習慣寫法,安卓中也是經常看到這樣類似重複的代碼。那麼我們有沒有什麼好辦法可以避免這樣重複代碼搬運尼?javaBean是必須要實現get/set還是可以直接聲明public就可以了?
其實我自己也很好奇到底哪種思想正確。於是問了下萬能的百度,網上存在這麼幾種編程觀點:

1. 幾種觀點

  1. java編程思想:類的封裝,安全性,只供外部get (讀) / set (寫) 。CSDN論壇
  2. 2.3之前用get set會影響android的性能,直接用public可以提到30%的性能。
  3. 我們閱讀Google的源代碼,都是實體類屬性被定義成public的。
  4. 其他一些觀點:
    Android開發中JavaBean不推薦寫get/set方法原因
    JavaBean的get、set方法引發的討論
    關於 java 中的 set,get方法,而爲什麼不推薦直接使用public

1.1 第1種觀點,我們就要回到public private protect的區別去:

  1. public表明該數據成員、成員函數是對所有用戶開放的,所有用戶都可以直接進行調用。
  2. private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財產神聖不可侵犯嘛,即便是子女,朋友,都不可以使用
  3. protected對於子女、朋友來說,就是public的,可以自由使用,沒有任何限制,而對於其他的外部class,protected就變成private。
    public private protected區別

1.2 第2、3種確實是在用事實證明,4則是大家比較有深度的討論。

2. 快速生成get set toString的方法:

1、Android Studio通過快捷鍵Alt+insert 彈出對話框選擇要實現的成員變量
2、使用Lombok工具通過註解完成,http://projectlombok.org/
3、安卓中還可以使用DataBinding的ObservableField

3. 自己的觀點

最後自己的觀點則是,在安卓中確實可以直接用public,原因有:
1、多數情況下安卓端只是UI展示,具體的業務需求變換是交給後端處理的。
2、java編程思想和規範確實有封裝、安全等概念,在安卓SDK中一些api也是遵循這樣設計的,但我們開發者多數情況是面向業務開發。
3、結合自己經驗,javaBean中使用public確實能減少一定代碼量,多數bean可以寫在函數級使用完後釋放。
當然,假如我們是站在寫sdk api供別人調用時,這種情況就需要實現類的get set toString等方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章