最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

POJO(Plain Ordinary Java Object)

2022-06-27 11:27 作者:CAE虛擬與現(xiàn)實(shí)  | 我要投稿

一:什么是POJO
“Plain Ordinary Java Object”/“Plain Old Java Object”“簡(jiǎn)單java對(duì)象”。POJO的內(nèi)在含義是指那些沒有從任何類繼承、也沒有實(shí)現(xiàn)任何接口,更沒有被其它框架侵入的java對(duì)象。

二:為什么會(huì)有POJO?
主要是Java的開發(fā)者被EJB的繁雜搞怕了,大家經(jīng)過反思,又回歸“純潔老式”的JavaBean,即有無參構(gòu)造函數(shù),每個(gè)字段都有g(shù)etter和setter的java類。

三:POJO的意義
POJO讓開發(fā)者可專注于業(yè)務(wù)邏輯和脫離框架的單元測(cè)試。除此之外, 由于POJO并不須要繼承框架的類或?qū)崿F(xiàn)其接口,開發(fā)者能夠極其靈活地搭建繼承結(jié)構(gòu)和建造應(yīng)用。
POJO的意義就在于它的簡(jiǎn)單而靈活性,因?yàn)樗暮?jiǎn)單和靈活,使得POJO能夠任意擴(kuò)展,從而勝任多個(gè)場(chǎng)合,也就讓一個(gè)模型貫穿多個(gè)層成為現(xiàn)實(shí)。
先寫一個(gè)核心POJO,然后實(shí)現(xiàn)業(yè)務(wù)邏輯接口和持久化接口,就成了Domain Model; UI需要使用時(shí),就實(shí)現(xiàn)數(shù)據(jù)綁定接口,變成VO(View Object)

四:POJO與PO、VO的區(qū)別
POJO是指簡(jiǎn)單java對(duì)象(Plain Old Java Objects、pure old java object 或者 plain ordinary java object)。
PO是指持久對(duì)象(persistant object持久對(duì)象)。
VO是指值對(duì)象或者View對(duì)象(Value Object、View Object)。注意,本文的VO特指View Object。
持久對(duì)象實(shí)際上必須對(duì)應(yīng)數(shù)據(jù)庫中的entity,所以和POJO有所區(qū)別。比如說POJO是由new創(chuàng)建,由GC回收。但是持久對(duì)象是insert數(shù)據(jù)庫創(chuàng)建,由數(shù)據(jù)庫delete刪除的?;旧铣志脤?duì)象生命周期和數(shù)據(jù)庫密切相關(guān)。另外持久對(duì)象往往只能存在一個(gè)數(shù)據(jù)庫Connection之中,Connnection關(guān)閉以后,持久對(duì)象就不存在了,而POJO只要不被GC回收,總是存在的。
由于存在諸多差別,因此持久對(duì)象PO(Persistent Object)在代碼上肯定和POJO不同,起碼PO相對(duì)于POJO會(huì)增加一些用來管理數(shù)據(jù)庫entity狀態(tài)的屬性和方法。而ORM追求的目標(biāo)就是要PO在使用上盡量和POJO一致,對(duì)于程序員來說,他們可以把PO當(dāng)做POJO來用,而感覺不到PO的存在。

五:POJO的擴(kuò)展
POJO僅包含最簡(jiǎn)單的字段屬性,沒有多余的東西,它本質(zhì)上就是一個(gè)普通的JavaBean。
但是在POJO的基礎(chǔ)上,能夠擴(kuò)展出不同的對(duì)象。
為POJO增加了持久化的方法(Insert、Update、Delete……)之后,POJO就變成了PO。
為POJO增加了數(shù)據(jù)綁定功能之后,POJO就變成了View Object,即UI Model。
為POJO增加業(yè)務(wù)邏輯的方法(比如單據(jù)審核、轉(zhuǎn)帳……)之后,POJO就變成了Domain Model。
POJO還可以當(dāng)作DTO使用。

六:POJO和JavaBean的區(qū)別

POJO(Plain Old Java Object)這個(gè)名字用來強(qiáng)調(diào)它是一個(gè)普通java對(duì)象,而不是一個(gè)特殊的對(duì)象。

2005年11月時(shí),“POJO”主要用來指代那些沒用遵從特定的Java對(duì)象模型,約定或框架如EJB的Java對(duì)象.

理想地講,一個(gè)POJO是一個(gè)不受任何限制的Java對(duì)象(除了Java語言規(guī)范)。例如一個(gè)POJO不應(yīng)該是

  1. 擴(kuò)展預(yù)定的類,如 ? ? ??public class Foo extends javax.servlet.http.HttpServlet { ...

  2. 實(shí)現(xiàn)預(yù)定的接口,如 ??public class Bar implements javax.ejb.EntityBean { ...

  3. 包含預(yù)定的標(biāo)注,如 ??@javax.ejb.Entity public class Baz{ ...

然后,因?yàn)榧夹g(shù)上的困難及其他原因,許多兼容POJO風(fēng)格的軟件產(chǎn)品或框架事實(shí)上仍然要求使用預(yù)定的標(biāo)注,譬如用于更方便的持久化。

JavaBean 是一種JAVA語言寫成的可重用組件。它的方法命名,構(gòu)造及行為必須符合特定的約定:

  1. 這個(gè)類必須有一個(gè)公共的缺省構(gòu)造函數(shù)。

  2. 這個(gè)類的屬性使用getter和setter來訪問,其他方法遵從標(biāo)準(zhǔn)命名規(guī)范。

  3. 這個(gè)類應(yīng)是可序列化的。?

因?yàn)檫@些要求主要是靠約定而不是靠實(shí)現(xiàn)接口,所以許多開發(fā)者把JavaBean看作遵從特定命名約定的POJO。

POJO(Plain Ordinary Java Object)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
宜阳县| 正安县| 天全县| 漠河县| 手游| 朝阳县| 信阳市| 成都市| 西峡县| 乐业县| 松潘县| 肥城市| 即墨市| 长岭县| 呼伦贝尔市| 延安市| 阳春市| 湘阴县| 莱芜市| 永寿县| 淮安市| 兰州市| 金乡县| 融水| 安仁县| 江陵县| 赣榆县| 南京市| 西乡县| 绥江县| 航空| 高陵县| 临江市| 乌恰县| 辽中县| 申扎县| 馆陶县| 邵阳市| 鸡泽县| 南雄市| 饶阳县|