Java Bean / POJO设计模糊

时间:2013-11-06 09:51:24

标签: java

我试图通过操纵我必须在bean属性的getter方法中编写逻辑的其他属性来为java bean属性赋值。从设计的角度来看是否正确?

2 个答案:

答案 0 :(得分:0)

如果getter / setter只是镜像了值,则没有任何意义,或者将值设为私有。如果你有充分的理由将一些成员变量公开是没有错的。如果你正在编写一个3d点类,那么.x,.y,.z public就是完全合理的。

在可能存在副作用的情况下,getter / setter非常有用,您需要更新其他内部变量,重新计算缓存值并保护类免受无效输入的影响。

他们通常认为隐藏内部结构的理由通常是最不实用的。例如。我将这些点存储为3个浮点数,我可能决定将它们存储为远程数据库中的字符串,因此我将使getter / setter隐藏它们,就好像你可以这样做而不会对调用者的代码产生任何其他影响。 / p>

我认为OOp的基本原则是封装和信息隐藏。

与获取或设置属性相关联的行为的封装 - 这允许稍后更容易添加其他功能(如验证)。

在使用替代表示法公开属性时隐藏属性的内部表示

所以在setter和getter中编写验证逻辑很好......

答案 1 :(得分:0)

是的,这完全没问题。

您希望隐藏操纵该Bean / POJO对象的成员变量并将其封装的逻辑。我不知道它到底在做什么,但如果它只是关于你的Object的成员变量,那么它确实属于setter / getter。