<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 22  文章 - 3  trackbacks - 0
    <2009年1月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

            POJO(Plain Old Java Object)這種叫法是Martin Fowler、Rebecca Parsons和Josh MacKenzie在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 DictionaryDAO dao;

           public void setDao(DictionaryDAO dao) {

                  this.dao = dao;

           }

    }

            其實,這樣的認為是錯誤的,我仔細閱讀了《POJOs in Action》這本書的有關部分和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 in September 2000. In the talk we were pointing out the many benefits of encoding business logic into regular java objects rather than using Entity Beans. We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it''s caught on very nicely.
    基本的意思是我們要給具有業務邏輯處理的規則的Java對象(regular java objects)起了一個名字——POJO,這些Java對象不是EntityBeans(EJB的一種)。


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

    POJO, or Plain Old Java Object, is a normal Java object class (that is, not a JavaBean, EntityBean etc.)  and does not serve any other special role nor does it implement any special interfaces of any of the Java frameworks. This term was coined by Martin Fowler, Rebbecca Parsons and Josh MacKenzie who believed that by creating the acronym POJO, such objects would have a "fancy name", 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.diybl.com/course/3_program/java/javashl/200845/108451.html

    posted on 2009-01-09 16:55 圣克爾·光 閱讀(281) 評論(0)  編輯  收藏 所屬分類: Java隨筆
    主站蜘蛛池模板: 亚洲国产精品一区二区久久hs| 国产国产人免费视频成69堂| 久久久青草青青亚洲国产免观| 99久久99热精品免费观看国产| 亚洲成AV人在线观看网址| 中文永久免费观看网站| 亚洲日本香蕉视频| 久久久久久夜精品精品免费啦| 亚洲jjzzjjzz在线播放| 2021在线永久免费视频| 亚洲av纯肉无码精品动漫| 在线免费观看一区二区三区| 亚洲卡一卡2卡三卡4麻豆| 亚洲精品国精品久久99热| 最好看的中文字幕2019免费| 国产精品亚洲一区二区三区| 国产美女被遭强高潮免费网站| 青柠影视在线观看免费高清| 亚洲熟女一区二区三区| 丝瓜app免费下载网址进入ios| 91亚洲性爱在线视频| 国产亚洲欧洲Aⅴ综合一区 | 亚洲AV无码精品无码麻豆| 在线观看人成视频免费无遮挡| 亚洲宅男天堂在线观看无病毒| 一个人免费观看在线视频www| 香蕉免费一级视频在线观看| 久久亚洲精品中文字幕无码| 免费观看亚洲人成网站| 男女猛烈无遮掩视频免费软件| 亚洲视频在线一区二区三区| 亚洲中文字幕伊人久久无码| 免费萌白酱国产一区二区三区 | 久久久免费精品re6| 一级成人a免费视频| 亚洲精品无码少妇30P| 亚洲日本一区二区三区在线不卡| 日韩欧毛片免费视频| 光棍天堂免费手机观看在线观看| 免费一级毛suv好看的国产网站 | 人妻仑刮八A级毛片免费看|