按照Martin Fowler的解釋是“Plain Old Java Obj " /> 欧美日韩一区在线播放,国内激情视频在线观看,亚洲www色

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

理解POCO

  理解POCO(Plain Old CLR Object)先要理解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的開發(fā)者被EJB的繁雜搞怕了,大家經過反思,又回歸“純潔老式”的JavaBean,即有無參構造函數,每個字段都有getter和setter的Java類。

  3、POJO的意義

  POJO讓開發(fā)者可專注于業(yè)務邏輯和脫離框架的單元測試。除此之外, 由于POJO并不須要繼承框架的類或實現其接口,開發(fā)者能夠極其靈活地搭建繼承結構和建造應用
  POJO的意義就在于它的簡單而靈活性,因為它的簡單和靈活,使得POJO能夠任意擴展,從而勝任多個場合,也就讓一個模型貫穿多個層成為現實。
  先寫一個核心POJO,然后實現業(yè)務邏輯接口和持久化接口,就成了Domain Model; UI需要使用時,就實現數據綁定接口,變成VO(View Object)。

  4、POJO與PO、VO的區(qū)別
  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有所區(qū)別。比如說POJO是由new創(chuàng)建,由GC回收。但是持久對象是 insert數據庫創(chuàng)建,由數據庫delete刪除的。基本上持久對象   生命周期和數據庫密切相關。另外持久對象往往只能存在一個數據庫 Connection之中,Connnection關閉以后,持久對象就不存在了,而POJO只要不被GC回收,總是存在的。
  由于存在諸多差別,因此持久對象PO(Persistent Object)在代碼上肯定和POJO不同,起碼PO相對于POJO會增加一些用來管理數據庫entity狀態(tài)的屬性和方法。而ORM追求的目標就是要 PO在使用上盡量和POJO一致,對于程序員來說,他們可以把PO當做POJO來用,而感覺不到PO的存在。

  5、POJO的擴展

  POJO僅包含最簡單的字段屬性,沒有多余的東西,它本質上就是一個普通的JavaBean。
    但是在POJO的基礎上,能夠擴展出不同的對象。

  • 為POJO增加了持久化的方法(Insert、Update、Delete……)之后,POJO就變成了PO。
  • 為POJO增加了數據綁定功能之后,POJO就變成了View Object,即UI Model。
  • 為POJO增加業(yè)務邏輯的方法(比如單據審核、轉帳……)之后,POJO就變成了Domain Model。
  • POJO還可以當作DTO使用。

it知識庫理解POCO,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 岫岩| 长子县| 深水埗区| 泰州市| 西华县| 锡林郭勒盟| 宜昌市| 阳原县| 泾阳县| 斗六市| 顺平县| 昌平区| 皮山县| 崇州市| 唐海县| 余姚市| 池州市| 马公市| 龙门县| 山西省| 邢台市| 西乌珠穆沁旗| 庆阳市| 东辽县| 曲麻莱县| 昂仁县| 华池县| 紫阳县| 松溪县| 左权县| 靖州| 祥云县| 卢龙县| 宜宾市| 龙门县| 余庆县| 揭东县| 珠海市| 武平县| 通化县| 商南县|