国产探花免费观看_亚洲丰满少妇自慰呻吟_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使用。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岳普湖县| 安阳市| 麟游县| 澄迈县| 依安县| 长治市| 宕昌县| 桦川县| 望城县| 海口市| 民乐县| 二连浩特市| 威信县| 贺州市| 沅陵县| 古蔺县| 莱州市| 湘乡市| 舒城县| 塔城市| 互助| 图们市| 丹阳市| 鄯善县| 乐业县| 图们市| 柞水县| 伊春市| 资溪县| 鹤峰县| 五指山市| 岳池县| 延边| 平山县| 碌曲县| 尼木县| 上杭县| 理塘县| 古蔺县| 贵南县| 报价|