【发布时间】:2012-12-19 19:19:35
【问题描述】:
在我的项目中,我有一个小数据结构Key。
public class Key implements Serializable {
private static final long serialVersionUID = 1L;
public String db;
public String ref;
public Object id;
protected Key() {
}
public Key(String db, String ref, Object id) {
this.db = db;
this.ref = ref;
this.id = id;
}
}
是的,这个类很简单,每个字段都可以公开访问。
但有人建议我改用 POJO 样式类,但当我问他们为什么无法告诉我时。
在我看来,调用 getters 和 setters 比直接访问字段要慢。
那么为什么我必须使用 POJO 编程风格呢?
【问题讨论】:
-
调用 getter 和 setter 比直接访问字段慢。 错误信息。直接操作变量是一个非常糟糕的主意。想象一下有人可以在代码中设置 age=-11111;这很糟糕。如果您有 getter/setter,您可以在将值设置为字段之前验证无效值。
-
如果值是不可变的,您可以将它们设为
final以防止非法值被设置。 -
从技术上讲,您在上面编码的是 POJO。
-
“不透明”是我见过的一个术语,但含义并不完全相同,因为并非所有字段都被假定为可以通过不透明对象访问。
-
我很惊讶为什么没有人提到@pradeep simha 的回答涉及 oop 的非常基本的事情。封装!!!