zoukankan      html  css  js  c++  java
  • Java分层领域模型的DO、DTO、BO、AO、VO、POJO、Query定义


    分层领域模型
        DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。
        DTO( Data Transfer Object):数据传输对象,Service或Manager向外传输的对象。
        BO( Business Object):业务对象。 由Service层输出的封装业务逻辑的对象。
        AO( Application Object):应用对象。 在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复用度不高。
        VO( View Object):显示层对象,通常是Web向模板渲染引擎层传输的对象。
        Query:数据查询对象,各层接收上层的查询请求。 注意超过2个参数的查询封装,禁止使用Map类来传输。
      POJO( Plain Ordinary Java Object):简单的Java对象,专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。


    领域模型命名
        数据对象:xxxDO,xxx即为数据表名。
        数据传输对象:xxxDTO,xxx为业务领域相关的名称。
        展示对象:xxxVO,xxx一般为网页名称。
        POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。

    POJO真正的意义

      POJO = "Plain Old Java Object",即简单的Java对象,是MartinFowler等发明的一个术语,用来表示普通的Java对象,不是JavaBean, EntityBean 或者 SessionBean。POJO不担当任何特殊的角色,也不实现任何特殊的Java框架的接口如 EJB,JDBC等等。
    即POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。
     
    摘自Martin Fowler个人网站的一句话:
      "We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name.
    So we gave them one, and it's caught on very nicely."
     
      我们疑惑为什么人们不喜欢在他们的系统中使用普通的对象,我们得到的结论是——普通的对象缺少一个响亮的名字,因此我们给它们起了一个,并且取得了很好的效果!


                      故屿γ                   

     

  • 相关阅读:
    原生JS实现日历
    重复的事情让机器来做,简化的思想
    Ext3.1的一些使用讨论
    JS使用Crypto实现AES/ECS/zero-padding加密
    一些提升效率的小知识
    一些很有意思的JS现象
    Tiny Linux -- tce-load
    python sqlalchemy mysql 自动映射
    python 反射
    python 动态导包
  • 原文地址:https://www.cnblogs.com/guyu-/p/13434142.html
Copyright © 2011-2022 走看看