3、什么是POJO? 什么叫pojo

3、什么是POJO? 什么叫pojo

本文转载自百度文库,详细出处请参考:http://wenku.baidu.com/view/4a9ad533ee06eff9aef80765.html

我认为写的很准确,很抱歉没有找到作者的名字!

POJO(Plain Old Java Object)这种叫法是Martin Fowler、Rebecca Parsons和JoshMacKenzie在2000年的一次演讲的时候提出来的。

  我在做J2EE培训中发现我的很多学生问我什么是POJO,后来我在写书(《Spring2初学者实践教材》和《Spring3初学者实践教材》)

的时候发现POJO这个概念无法回避。现在网上对于POJO的解释很多,但是很多都是有错误的或者不够准确。对此我一开始也是存在误区的,

我原来是这样理解的:POJO是这样的一种“纯粹的”JavaBean,在它里面除了JavaBean规范的方法和属性没有别的东西,即private属性以及对这个属性方法的public的get和set方法。我们会发现这样的JavaBean很“单纯”,它只能装载数据,作为数据存储的载体,而不具有业务逻辑处理的能力。所以下面的代码被认为是POJO了。

package com.tongking.spring;

public class DbHello implements Hello {

  private DictionaryDAOdao;

  public voidsetDao(DictionaryDAO dao) {

  this.dao = dao;

  }

}

  其实,这样的认为是错误的,我仔细阅读了《POJOs inAction》这本书的有关部分和POJO的最原始的出处http://martinfowler.com/bliki/POJO.html,

  The term was coined while Rebecca Parsons,Josh MacKenzie and I were preparing for a talk at a conference inSeptember 2000.

In the talk we were pointing out the many benefits of encodingbusiness logic into regular java objects rather than using EntityBeans.We wondered why people were so against using regular objectsin their systems and concluded that it was because simple objectslacked a fancy name. So we gave them one, and it''s caught on verynicely.

  基本的意思是我们要给具有业务逻辑处理的规则的Java对象(regular javaobjects)起了一个名字——POJO,这些Java对象不是EntityBeans(EJB的一种)。

  我又在http://www.webopedia.com/TERM/P/POJO.htm查到解释如下:

  POJO, or Plain Old Java Object, is a normalJava object class (that is, not a JavaBean, EntityBeanetc.) and does notserve anyother special role nor does it implement any special interfaces ofany of the Java frameworks. This term wascoinedby Martin Fowler, Rebbecca Parsons and Josh MacKenzie who believedthat by creating the acronym POJO, such objects would have a "fancyname", thereby convincing people that they were worthy of use.

  基本意思是说POJO一个正规的Java对象(不是JavaBean,EntityBean等),也不担当任何的特殊的角色,也不实现任何Java框架指定的接口。

  我觉得上面的解释很准确,POJO应该不是我们开始认为的JavaBean,当然更不是EJB,它不应该依赖于框架即继承或实现某些框架类或接口。例如:Struts1中的Action和ActionForm当然不属于POJO了,而在Struts2中的Action由于可以不继承任何的接口,所以在这种情况下Action是POJO,但是Struts2中的Action也可以继承ActionSupport类就不再属于POJO了。POJO里面是可以包含业务逻辑处理和持久化逻辑,也可以包含类似与JavaBean属性和对属性访问的set和get方法的。

  最后,我们总结一下给一个定义把,POJO是一个简单的、正规Java对象,它包含业务逻辑处理或持久化逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。

  

爱华网本文地址 » http://www.aihuau.com/a/25101018/373419.html

更多阅读

什么是现量、比量、证量、圣言量?_回归自性 回归自性论坛

什么是现量、比量、证量、圣言量? 1、现量、比量、圣教量。现量是用不著意识思索就能够直觉其存在,也就是直接之知,如人的手碰到火,立刻就知其存在是;比量是比度而知,也就是推理之知,如见远处有烟就知彼处必有火,听到隔壁有说话的声音,就知

什么叫直销? 直销找人

根据第443号国务院令公布的《直销管理条例》中首次对“什么是直销?什么叫直销?”明确定义:直销是指直销企业招募直销员,由直销员在固定营业场所之外直接向最终消费者推销产品的经销方式。二、直销定义的演变直销这一中文单词,顾名思义是

什么叫路肩、路堑、路堤?它们之间有何区别? 路堑和路堤

什么叫路肩、路堑、路堤?它们之间有何区别?公路两边的土质保护部分叫路肩,承托路面路基又叫路堤,路两边的排水沟叫路堑。高于原地面的填方路基称为路堤,低于原地面的挖方路基称为路堑。路面底面以下80cm范围内的路基部分称为路床。

什么叫“普通话”? 普通话发音矫正

曾几何时,经常见到大街上都有提示:“同志,请您讲普通话!”普通话?什么叫“普通话”?不错,搜索一下就能得到一个标准答案。但我不是那个意思。我的意思是:既然有“普通话”,那么,相对应的“特殊话”是什么?方言?民族语言?“官话”为普通,方言、民

声明:《3、什么是POJO? 什么叫pojo》为网友超电磁炮丶分享!如侵犯到您的合法权益请联系我们删除