在我的所有JSF
项目中,我使用Pojo
的标准定义
作为Plain Old Java Object
定义字段
private
修饰符
例如
public class Pojo {
// My private fields
private String field1;
private String field2;
// setters AND getters
// ----------------------------
public String getField1() {
return field1;
}
public void setField1(String field1) {
this.field1 = field1;
}
public String getField2() {
return field2;
}
public void setField2(String field2) {
this.field2 = field2;
}
// ----------------------------
}
在我的public
字段中使用private
修饰符而不是Pojo
是否存在任何风险
例如
public class Pojo {
// My private fields
public String field1;
public String field2;
// setters AND getters
// ----------------------------
public String getField1() {
return field1;
}
public void setField1(String field1) {
this.field1 = field1;
}
public String getField2() {
return field2;
}
public void setField2(String field2) {
this.field2 = field2;
}
// ----------------------------
}
请注意
我真的需要这样做(改变修饰符)不只是为了实验
答案 0 :(得分:10)
“风险”是你基本上不再对价值有任何控制权。您永远不能执行任何类型的验证,因为任何代码都可以随时更改值。
此外,您永远无法更改数据存储方式的实施细节,因为您正在公开这些数据。只需使用getter和setter,就可以将API(类可以做什么)与实现细节分开。
现在你可以决定这一切都很好(虽然我不会)。如果您做沿着公共现场路线走下去,我会建议您删除getter / setter方法 - 否则任何看到这些方法的人都可能看起来就像你有一个“适当的“课程,当你真的有一个数据桶。