`

POJO模式

 
阅读更多

POJO模式

                                                Aaron

1.     什么是POJO

POJO的名称有多种,pure old java object plain ordinary java object 等。

按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的java对象”,但大家都使用“简单java对象”来称呼它。

 

POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。

 

POCO的概念是从javaPOJO借用而来,而两者的含义是一致的,不同的仅仅是使用的语言不一样。所以POCO的解释就是“Plain Old C# Object”

2.     为什么会有POJO

主要是Java的开发者被EJB的繁杂搞怕了,大家经过反思,又回归“纯洁老式”的JavaBean,即有无参构造函数,每个字段都有gettersetterjava类。

3.     POJO的意义

POJO让开发者可专注于业务逻辑和脱离框架的单元测试。除此之外, 由于POJO并不须要继承框架的类或实现其接口,开发者能够极其灵活地搭建继承结构和建造应用。

 

POJO的意义就在于它的简单而灵活性,因为它的简单和灵活,使得POJO能够任意扩展,从而胜任多个场合,也就让一个模型贯穿多个层成为现实。

先写一个核心POJO,然后实现业务逻辑接口和持久化接口,就成了Domain Model UI需要使用时,就实现数据绑定接口,变成VOView Object)。

4.     POJOPOVO的区别

POJO是指简单java对象(Plain Old Java Objectspure old java object 或者 plain ordinary java object)。

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

VO是指值对象或者View对象(Value ObjectView 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的基础上,能够扩展出不同的对象。

l           POJO增加了持久化的方法(InsertUpdateDelete……)之后,POJO就变成了PO

l           POJO增加了数据绑定功能之后,POJO就变成了View Object,即UI Model

l           POJO增加业务逻辑的方法(比如单据审核、转帐……)之后,POJO就变成了Domain Model

l           POJO还可以当作DTO使用。

 

转自:http://www.cnblogs.com/ego/articles/1499241.html

分享到:
评论

相关推荐

    POJO In action 代码

    7. **设计模式**:书中可能涵盖各种设计模式,如单例、工厂、观察者等,它们在POJOs中的实现和应用场景。 8. **模块化与组件化**:POJOs是构建模块化系统的基础,它们可以单独开发、测试和复用。 9. **持续集成与...

    pojo类与javaBean

    ### POJO类与JavaBean详解 #### POJO类与JavaBean的概念 在Java开发领域,POJO类与JavaBean是两个常被提及的概念,它们在软件...在实际项目中,根据具体需求选择合适的设计模式,可以使代码更加高效、可读和可维护。

    用WebService传递POJO和对象数组的例子.doc

    在AXIS2中,我们可以直接将POJO类转换为Web服务,这是一种自底向上的开发模式。在这个例子中,`sample.pojo.data.Weather`是一个简单的POJO类,包含温度、预报、是否下雨和降雨量等属性。这些属性对应Web服务的输入...

    Seam-无缝集成JSF

    此外,Seam的灵活性允许它在多种环境中运行,无论是与EJB3配合还是在纯POJO模式下使用。总之,对于正在寻找一种强大的、可扩展的Java Web应用程序框架的开发者来说,Seam无疑是一个值得深入探索的选择。

    POJO.rar_pojo_pojo java_swing_swing framework

    Appfuse使用MVC(Model-View-Controller)设计模式,并且支持多种持久层框架,如Hibernate和JPA。在描述中提到的“带有XDoclet代码的POJO”,指的是使用XDoclet工具生成的POJO。XDoclet是一个基于JavaDoc的代码生成...

    用pojo对象作birt的数据源

    POJO是一种简单的Java类,它不包含任何特殊的框架或库依赖,也不遵守任何特定的设计模式。这样的对象可以被用来存储和传输数据,非常适合作为数据模型在各种业务逻辑中使用。 在BIRT中,数据源通常可以是数据库连接...

    eclipse 配置 hibernate tools 反向生成 pojo类 注解

    为了提高开发效率,开发者经常使用Hibernate Tools来反向工程数据库模式,自动生成POJO(Plain Old Java Object)类,这些类可以直接用于数据操作。本文将详细讲解如何在Eclipse中配置Hibernate Tools以实现注解方式...

    JDBCTemplate+JavaPOJO实现通用DAO

    在Java开发中,数据访问对象(DAO)模式是一种常见的设计模式,用于封装对数据库的操作,使得业务逻辑与数据访问逻辑分离。JDBC(Java Database Connectivity)是Java平台中用于访问数据库的标准API,但它直接使用...

    server new pojo sse

    SSE改变了这一模式,服务器可以通过EventSource接口持续发送事件到客户端,而客户端只需要建立一次连接。SSE广泛应用于实时数据更新场景,如股票报价、天气预报或聊天应用。 SSE的工作流程包括以下步骤: - ...

    POJO IN ACTION

    - **简单性**:POJOs遵循简单的Java对象模式,易于理解和维护。 - **独立性**:它们不依赖于特定框架,使得它们能够在多种环境中部署。 - **可测试性**:由于没有框架依赖,可以通过简单的单元测试工具进行测试。 *...

    MyBatis逆向工程生成pojo和mapper学习笔记

    - 表选择:可以指定需要逆向工程的数据库表,可以通过tableName属性指定单个表,也可以通过tablePattern属性指定模式。 - 生成策略:可配置是否生成主键、是否生成序列化接口、是否生成注释等。 3. **运行Java...

    spajam2019-android:前端

    在Models设置POJO模式并根据该模式进行存储将用于JSON形式→POJOの変換参考网址: : OkHttp Square进行HTTP通讯和SPDY通讯的客户端库这次,它与Retrofit2结合使用,而不是单独使用OkHttp,主要用于日志记录部分。...

    excel.ts:TypeScript中的Excel或电子表格,动态自定义

    ··excel.ts excel.ts是基于TypeScript编写的Excel综合解决方案,包含POJO模式的定义,多框架支持的Web端渲染以及Node导出服务。入门要启动并运行本地副本,请遵循以下简单步骤。先决条件这是一个如何列出使用软件...

    DataBaseToJava:该工具将从数据库中生成Pojo类。您需要提供的只是数据库连接属性。

    - **扫描数据库模式**:工具会连接到指定的数据库,获取所有表的信息,包括列名、数据类型等。 - **生成Java源码**:基于数据库表结构,工具将为每个表创建一个对应的POJO类,包含字段和getter/setter方法。 - **...

    POJO-Best-Practice:创建模型POJO的Android最佳实践

    - 使用Builder模式创建POJO,可以提供更简洁、易读的构造方法,减少冗余代码。例如,`Person.builder().name("John").age(30).build()`。 4. **Data Class**: - 如果使用Kotlin,可以利用其内置的数据类功能,...

    关于VO、PO的理解——java的(PO,VO,TO,BO,DAO,POJO)解释

    DAO(Data Access Object)是数据访问对象,是一个 sun 的一个标准 J2EE 设计模式,这个模式中有个接口就是 DAO,它负持久层的操作。为业务层提供接口。此对象用于访问数据库。通常和 PO 结合使用,DAO 中包含了各种...

    jsonschema2pojo-bacta-archive:用于 json 模式代码生成的自定义规则工厂

    在给定的标题“jsonschema2pojo-bacta-archive:用于json模式代码生成的自定义规则工厂”中,我们可以看出这个项目是JSONSchema2Pojo的一个扩展,特别设计用于实现特定的定制化规则,以满足更复杂的代码生成需求。...

    备忘录模式.rar备忘录模式.rarjava设计模式

    备忘录可以是简单的数据结构,如POJO,也可以是复杂的结构,例如序列化的对象。备忘录类通常有两个版本,一个是具体备忘录,包含实际数据;另一个是抽象备忘录,提供接口供发起人访问。 3. **存档者(Caretaker)**...

    myeclipse中自动生成hibernate的POJO、DAO和hbm.xml文件

    MyEclipse中自动生成Hibernate的POJO、DAO和hbm.xml文件 MyEclipse是一款功能强大且流行的集成开发环境(IDE),它提供了许多实用的功能来帮助开发者快速构建和维护项目。其中,MyEclipse提供了对Hibernate的支持,...

    设计模式——MVC模式

    Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。 View(视图) - 视图代表模型包含的数据的可视化。 Controller(控制器) - 控制器作用于模型和视图上。它...

Global site tag (gtag.js) - Google Analytics