您的位置:首页 > 编程语言 > Java开发

知乎上关于Java Bean的比喻

2015-12-10 19:19 274 查看
http://www.zhihu.com/question/19773379

著作权归作者所有。

商业转载请联系作者获得授权,非商业转载请注明出处。

作者:文朋

链接:http://www.zhihu.com/question/19773379/answer/18307751

来源:知乎

从Stack Overflow看到的答案,我觉得应该能完美回答你:

主要区分三个:JavaBean,EJB,POJO。
JavaBean

JavaBean是公共Java类,但是为了编辑工具识别,需要满足至少三个条件:
有一个public默认构造器(例如无参构造器,)
属性使用public 的get,set方法访问,也就是说设置成private,同时get,set方法与属性名的大小也需要对应。例如属性name,get方法就要写成,public String getName(){},N大写。
需要序列化。这个是框架,工具跨平台反映状态必须的
最近看<Think in Java>,里面讲到JavaBean最初是为Java GUI的可视化编程实现的.你拖动IDE构建工具创建一个GUI 组件(如多选框),其实是工具给你创建java类,并提供将类的属性暴露出来给你修改调整,将事件监听器暴露出来.《java 编程思想(第四版)》p823-824
EJB

在企业开发中,需要可伸缩的性能和事务、安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统。 然后有提高了协议要求,就出现了Enterprise Bean。

EJB在javabean基础上又提了一些要求,当然更复杂了。
POJO

有个叫Josh MacKenzie人觉得,EJB太复杂了,完全没必要每次都用,所以发明了个POJO,POJO是普通的javabean,什么是普通,就是和EJB对应的。

总之,区别就是,你先判断是否满足javabean的条件,然后如果再实现一些要求,满足EJB条件就是EJB,否则就是POJO。

原文链接:java - Difference between DTO, VO, POJO, JavaBeans?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JavaBean zhihu