JavaBean的意义何在?-灵析社区

云端小仙女

> `JavaBean中将属性定义为私有,转而提供getter、setter。这有什么意义?` * 意义其一在于实现面向对象的特性之一封装,对于一个类来说,要做的就是统一管理某些状态,涉及内部实现细节的属性或者说成员都需要私有化,即使需要修改,也`必须通过类上的方法`去修改,这才能叫管理,如果全部是 `public`, 拿到`类实例`就能随便改那管理了个毛线。举个实际点的例子,大型项目上排查问题经常需要定位哪里修改了某个状态,这个时候作为这个类来说,它是一问三不知的,那你作为开发者就能去搜代码,看哪些地方访问了这个属性,能找得你头皮发麻,但有了 `getter/setter`, 外部对类上属性的访问和修改对于类来说才是可感知的,你只需要在 `getter/setter`中打断点,跟下调用栈直接就能定位到问题点所在 * 其二, `遵循开闭原则`,对扩展开放,对修改关闭。对于外部来说,你不能直接修改类中的私有成员,这是体现的对`修改关闭`;提供一个 `setter` 来让外部修改私有成员的值,这体现的是对`扩展开放`。这里注意理解,本来外部不能修改,但你提供了一个方法让外部可以改,这就是一种扩展支持 * 其三,`你能直接改` 和 `我让你能改` 完全是两个层面的事情,这里面涉及到一个叫`权限控制`的概念

阅读量:1

点赞量:0

问AI