理解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的开发者被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使用。

Anychat专业即时通讯方案,专注六年的研发。能够给你提供最高清实时的音视频即时通讯。

如有需要下载体验可以访问http://www.bairuitech.com/

详细了解可以用致电020-38109065(开发包SDK)/ 020-38103410(产品)或者加Q1816573263。

转载于:https://blog.51cto.com/6278039/1095810

【Anychat】理解POCO相关推荐

  1. POCO C++库学习和分析 -- 序

    POCO C++库学习和分析 -- 序 1. POCO库概述: POCO是一个C++的开源库集.同一般的C++库相比,POCO的特点是提供了整一个应用框架.如果要做C++程序应用框架的快速开发,我觉得 ...

  2. java对象流保存表格_使用java对象

    <21天学通Java(第7版)>-- 1.3 对象和类 本节书摘来异步社区<21天学通Java(第7版)>一书中的第1章,第1.3节,作者: [美]Rogers Cadenhe ...

  3. 《ASP.NET MVC 4 实战》----2.3 Guestbook示例应用程序

    本节书摘来自异步社区<ASP.NET MVC 4 实战>一书中的第2章,第2.3节,作者: [美]Jeffrey Palermo , [美]Jimmy Bogard , [美]Eric H ...

  4. mongodb kt双机房灾备

    mongodb kt双机房灾备 http://www.cnblogs.com/lovecindywang/archive/2011/01/31/1948233.html lovecindywang 未 ...

  5. 定义一个dto对象_正确理解DTO、值对象和POCO

    (此文章同时发表在本人微信公众号"dotNET每日精华文章") 今天推荐的文章比较技术化也比较简单,但是对于一些初学者而言,可能也是容易搞混的概念:就是如何理解DTO.值对象和PO ...

  6. poco vs Boost

    Wooce Yang收集整理  POCO的优点:  1) 比boost更好的线程库,特别是一个活动的方法的实现,并且还可设置线程的优先级.  2) 比 boost:asio更全面的网络库.但是boos ...

  7. poco c++ 开发指南_掌握这个框架,你将会开发通杀全平台的万能爬虫

    想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D.Cocos2 ...

  8. 快速理解ASP.NET Core的认证与授权

    ASP.NET Core的认证与授权已经不是什么新鲜事了,微软官方的文档对于如何在ASP.NET Core中实现认证与授权有着非常详细深入的介绍.但有时候在开发过程中,我们也往往会感觉无从下手,或者由 ...

  9. POCO C++ Libraies介绍及常见用法

    POCO C++ Libraies属于功能广泛.轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台.工业自动化等领域. POCO C++ Libraies由多个功能模 ...

最新文章

  1. c程序设计语言第五章,c程序设计语言第五章第7题答案
  2. Python(8):模块内置变量
  3. kibana 更新 索引模式_Kibana对索引动态加字段显示
  4. 讲讲volatile的作用
  5. 传奇霸业维护服务器,37传奇霸业8月18日部分区服维护计划
  6. 日志分析linux命令
  7. 途观l怎么使用_官宣!中型SUV质量最新排名出炉:汉兰达失前三,大众途观L上榜!...
  8. Oracle插入时间
  9. 一个初级python web后端开发工程师的面试总结
  10. SphereEx 创始人张亮荣获『2021 年度海纳奖——分布式数据库十佳实践人物』
  11. occurs-free
  12. java个人理财代码_基于JavaEE的个人理财系统
  13. CSS font-style斜体字体倾斜体样式
  14. 手把手教你架设电影服务器
  15. 【Adapter模式】C++设计模式——适配器
  16. win10微软输入法不显示选字框?
  17. 读书笔记:软件工程(4) - 软件过程模型:瀑布模型
  18. 用LED柔性软屏来设计异形造型的创意显示屏。
  19. 《JavaScript 实战》:实现图片幻滑动展示效果
  20. maven子项目<parent>标签缺失导致的问题

热门文章

  1. 【BlackHat】研究员吐槽苹果漏洞奖励计划
  2. 6. Observable 和 数组的区别
  3. 不要再问我this的指向问题了
  4. 【严重抗议】主播都是阿里程序猿的直播,他们也是够了!
  5. Silverlight 3一瞥
  6. 追求代码质量: 不要被覆盖报告所迷惑
  7. Centos7挂载iso镜像文件配置本地yum源
  8. Spring源码学习笔记:经典设计模式之代理模式
  9. [Java] 蓝桥杯 BASIC-1 基础练习 闰年判断
  10. 【软件测试】α测试和β测试的区别