Java 的 Pojo 为什么需要写 Getter/Setter?直接 public field 有什么缺点?突然忘了这个知识点

查看 185|回复 13
作者:Masoud2023   
我记得我最开始好像在哪看过这个问题,但是忘了答案是什么,v 友能不能提示下。

setter, getter, pojo, Field

proxytoworld   
限制修改
impanghu   
封装性
jameszhangqk1   
封装、多态、继承 🤣
hidemyself   
因为很多三方框架会调用这几个方法。
memedahui   
这是 java 的基本特性封装性,如果你使用 public field,你不可以:1 在设置的时候进行校验,2 在取值的时候进行加强,而且如果你编写的是公用 api,别人就可以随意调用你的 Pojo 方法和属性,表面上你是失去了这个属性的控制权,实际上是你完全失去了对于 pojo 的控制权.比如你想让线程 Getter/Setter 里面 field 属性,你发现你已经做不到了.完整的教程在第四章:类和接口
aptupdate   
我记得这种叫贫血模型,为了减少耦合容易维护啥的,后面又搞出来一大堆 BO QO VO DTO 就这么延续下来了。
bugDev   
kotlin 的使用,var 和 val ,反编译会发现都是 private ,只是 var 会有 setter 和 getter ,val 只有 getter
knightdf   
你会把用户输入的数据直接拼接到 sql 里执行吗?不会对吧?这不是和 getter/setter 的道理一样么
Masoud2023
OP
  
@memedahui #5 看来有必要重读一次这本书了
您需要登录后才可以回帖 登录 | 立即注册

返回顶部