在我的项目中,我有一个小的数据结构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;
}
}
Run Code Online (Sandbox Code Playgroud)
是的,这个课程很简单,每个领域都可公开访问.
但有人建议我使用POJO风格的课程,但当我问他们为什么无法告诉我.
在我看来,调用getter和setter比直接访问字段要慢.
那么为什么我必须使用POJO编程风格呢?
Ben*_*ale 20
取自维基百科:
POJO是Plain Old Java Object的首字母缩写.该名称用于强调给定对象是普通Java对象,而不是特殊对象.
POJO通常很简单,因此不依赖于其他库,接口或注释.这增加了在多种项目类型(Web,桌面,控制台等)中重用它的可能性.
正如有人已经在评论中指出的那样,你的对象在技术上已经是一个POJO但是你已经特别询问了更类似于JavaBeans的getter和setter.
我可以考虑使用getter和setter的原因有很多:
getFullName()这是的串联getFirstName()和getLastName()其通过字段支持.是的,通过方法调用访问或设置值可能比直接字段访问慢,但差异几乎不明显,它肯定不会是您的程序的瓶颈.
虽然优点很明显,但这并不意味着吸气剂和制定者是银弹.在设计真实世界,强大的可扩展类时,需要考虑许多"陷阱".
这种设计具有getter和setter类时回答一个非常类似的问题着眼于细节的一些注意事项.尽管根据您正在设计EG的类的类型,建议可能更相关,但是在大型系统中构成API的一部分而不是简单的数据传输对象.
另请注意,在某些情况下,具有直接字段的类可能是有利的,例如当速度必不可少或内存有限时,尽管只应在分析代码并发现它实际上是瓶颈之后才考虑这一点.
另外要注意的是,您不仅要将所有字段包装在getter和setter中,因为这实际上缺少封装点.
这个答案很好地总结了使用getter和setter选择POJO而不是JavaBean样式对象的原因.
| 归档时间: |
|
| 查看次数: |
23889 次 |
| 最近记录: |