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等方法。

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