国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

POJO解釋

2019-11-08 02:58:55
字體:
來源:轉載
供稿:網友

《sPRing技術內幕》讀書筆記(1)——什么是POJO模式

今天在看《spring技術內幕》,第一章中多次提到了使用POJO來完成開發,就百度了一下,在此保留

1.     什么是POJO

POJO的名稱有多種,pure old java object 、plain ordinary java object 等。

按照Martin Fowler的解釋是“Plain Old Java Object”,從字面上翻譯為“純潔老式的java對象”,但大家都使用“簡單java對象”來稱呼它。

 

POJO的內在含義是指那些沒有從任何類繼承、也沒有實現任何接口,更沒有被其它框架侵入的java對象。

 

POCO的概念是從java的POJO借用而來,而兩者的含義是一致的,不同的僅僅是使用的語言不一樣。所以POCO的解釋就是“Plain Old C# Object”。

2.     為什么會有POJO?

主要是Java的開發者被EJB的繁雜搞怕了,大家經過反思,又回歸“純潔老式”的JavaBean,即有無參構造函數,每個字段都有getter和setter的java類。

3.     POJO的意義

POJO讓開發者可專注于業務邏輯和脫離框架的單元測試。除此之外, 由于POJO并不須要繼承框架的類或實現其接口,開發者能夠極其靈活地搭建繼承結構和建造應用。

 

POJO的意義就在于它的簡單而靈活性,因為它的簡單和靈活,使得POJO能夠任意擴展,從而勝任多個場合,也就讓一個模型貫穿多個層成為現實。

先寫一個核心POJO,然后實現業務邏輯接口和持久化接口,就成了Domain Model; UI需要使用時,就實現數據綁定接口,變成VO(View Object)。

4.     POJO與PO、VO的區別

POJO是指簡單java對象(Plain Old Java Objects、pure old java object 或者 plain ordinary java object)。

PO是指持久對象(persistant object持久對象)。

VO是指值對象或者View對象(Value Object、View Object)。注意,本文的VO特指View Object。

 

持久對象實際上必須對應數據庫中的entity,所以和POJO有所區別。比如說POJO是由new創建,由GC回收。但是持久對象是insert數據庫創建,由數據庫delete刪除的。基本上持久對象生命周期和數據庫密切相關。另外持久對象往往只能存在一個數據庫Connection之中,Connnection關閉以后,持久對象就不存在了,而POJO只要不被GC回收,總是存在的。

 

由于存在諸多差別,因此持久對象PO(Persistent Object)在代碼上肯定和POJO不同,起碼PO相對于POJO會增加一些用來管理數據庫entity狀態的屬性和方法。而ORM追求的目標就是要PO在使用上盡量和POJO一致,對于程序員來說,他們可以把PO當做POJO來用,而感覺不到PO的存在。

5.     POJO的擴展

POJO僅包含最簡單的字段屬性,沒有多余的東西,它本質上就是一個普通的JavaBean。

但是在POJO的基礎上,能夠擴展出不同的對象。

           為POJO增加了持久化的方法(Insert、Update、Delete……)之后,POJO就變成了PO。

           為POJO增加了數據綁定功能之后,POJO就變成了View Object,即UI Model。

           為POJO增加業務邏輯的方法(比如單據審核、轉帳……)之后,POJO就變成了Domain Model。

           POJO還可以當作DTO使用。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苗栗县| 赤壁市| 溧水县| 西林县| 石泉县| 耒阳市| 新绛县| 孙吴县| 衡东县| 神池县| 定结县| 湾仔区| 灵武市| 开阳县| 车险| 龙陵县| 阿拉善左旗| 视频| 宝应县| 定日县| 米泉市| 芜湖市| 玉山县| 特克斯县| 林芝县| 法库县| 通许县| 柘荣县| 镇巴县| 洪湖市| 兰溪市| 曲沃县| 靖边县| 明星| 林口县| 伊宁县| 贵德县| 晋州市| 乐平市| 东丽区| 盐山县|