0
  • 最佳答案

    和设计原理是有关的 好像是封闭开放原则 这块看看其他大佬咋说 get\set 方法都不是必须的 不过直接设置为公开变量的话 给定某个方法某些职能-单一职责原则 是为了保证数据安全

    这是设计原理的文章 可以看看哈https://www.jianshu.com/p/a4092ab5844d

    1382711465131241472  评论     打赏       阿肥
  • 前面2个大佬说的对了。


    你疑问是因为没遇到场景,我就随便说下。


    比如你直接把某个属性设置public,只有有对象,都能随便更新你的属性。导致后过就是,大家都能更新,很方便,如果某天需求改动了,比如:setName(String name)需求是在名字之后加一个后缀。之前是属性直接更新,没有使用set,现在麻烦,所有用到属性地方都手动加后缀,这改动多大啊,风险大。如果你使用统一set方法,你只需要在set方法内部拼接 + 后缀。只需要一点点改动。而且对调用者无感知的。

    get同理~

    1139423796017500160  评论     打赏       工头断点
  • 这是你的角度思考。如果开发的人不是你一个人,而是很多人。别人使用到你写的这个类,然后他想获取点什么东西,或者设置点什么东西,竟然没有。


    至于为什么要提供,就是楼下说的了。什么东西开放,什么东西隐藏起来。如果你做SDK开发,做协议之类的你就知道了,把使用的人当傻子,越简单越好,把复杂的东西隐藏起来。

    1153952789488054272  评论     打赏       拉大锯
  • 暴露所需要的字段就行了,不必要的字段可以不需要get或set方法,在某些特殊情况下,可以通过BeanUtils.copyProperties方法来设值

    1365268693742907392  评论     打赏       CrTnil
    • 感谢各位大佬回答,大致是易于后期维护和添加需求,暴露特定的方法,隐藏内部实现,且使用setget有很好的语义化

      1494238633526419458  评论     打赏       阿淳言出必行
      相关问题
      康师傅的小跟班 · JAVA
      2019-09-10 05:09 1295 2
      2020-03-08 05:30 846 2
      吕氏春秋 · java / 多线程并发
      2020-03-19 03:46 859 4
      不易 · java
      2020-06-06 19:41 461 2
      夙夜星辰叹 · javaweb
      2020-06-24 03:07 457 2
      2020-07-21 06:26 937 2
      CodeWwang · JAVA
      2020-07-22 06:11 440 2