zoukankan      html  css  js  c++  java
  • POCO的理解

    POCO的名称有多种,pure old clr object、 plain ordinary clr object等 POCO的概念是指那些没有从任何类继承,也没有实现任何接口,更没有被其它框架侵入的C#对象

    POCO的意义就在于它的简单和灵活性,因为他的简单和灵活,是得POCO能够任意扩展,从而胜任多个场合,也就让一个模型贯穿多个层成为现实 POCO与PO、VO的区别   

    POCO是指简单C#对象(Plain Old clr Objects、pure old java object 或者 plain ordinary clr object)。   PO是指持久对象(persistant object持久对象)。   

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

    持久对象实际上必须对应数据库中的entity,所以和POCO有所区别。比如说POCO是由new创建,由GC回收。但是持久对象是 insert数据库创建,由数据库delete删除的。基本上持久对象 生命周期和数据库密切相关。另外持久对象往往只能存在一个数据库 Connection之中,Connnection关闭以后,持久对象就不存在了,而POCO只要不被GC回收,总是存在的。   

    由于存在诸多差别,因此持久对象PO(Persistent Object)在代码上肯定和POCO不同,起码PO相对于POCO会增加一些用来管理数据库entity状态的属性和方法。而ORM追求的目标就是要 PO在使用上尽量和POCO一致,对于程序员来说,他们可以把PO当做POCO来用,而感觉不到PO的存在 POCO的扩展   POCO仅包含最简单的字段属性,没有多余的东西,它本质上就是一个普通的C# Object。 但是在POCO的基础上,能够扩展出不同的对象。 为POCO增加了持久化的方法(Insert、Update、Delete……)之后,POCO就变成了PO。 为POCO增加了数据绑定功能之后,POCO就变成了View Object,即UI Model。 为POCO增加业务逻辑的方法(比如单据审核、转帐……)之后,POCO就变成了Domain Model。 POCO还可以当作DTO使用。

  • 相关阅读:
    java栈的最大深度?
    String hashCode 方法为什么选择数字31作为乘子
    LinkedList 源码分析(JDK 1.8)
    ArrayList 源码分析
    LinkedHashMap 源码详细分析(JDK1.8)
    Java并发基础:了解无锁CAS就从源码分析
    IntelliJ IDEA(2018)安装详解
    HashMap 源码详细分析(JDK1.8)
    Java原子类实现原理分析
    谈谈Java中的volatile
  • 原文地址:https://www.cnblogs.com/jasonlai2016/p/11063138.html
Copyright © 2011-2022 走看看