DAO在计算机软件中,数据访问对象(data access object,DAO)是为某种类型的数据库或其他持久性机制提供一个抽象接口的对象。通过映射应用程序对持久层的调用,DAO 提供一些特定的数据操作,而无需暴露数据库细节。这种隔离支持单一功能原则。它分离了应用程序需要访问哪些数据,就域特定对象和数据类型(DAO 的公共接口),而言,这些需求可以用数据库管理系统(DBMS)、数据库模式等满足(DAO 的实现)。

POJO & JavaBean

POJO

使用 POJO 名称是为了避免和 EJB 混淆起来, 而且简称比较直接. 其中有一些属性及其 getter setter 方法的类,没有业务逻辑,有时可以作为 VO(value -object)或 dto(Data Transform Object)来使用.

当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有 connection 之类的方法。

下面是摘自 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.”--Martin Fowler

我们疑惑为什么人们不喜欢在他们的系统中使用普通的对象,我们得到的结论是——普通的对象缺少一个响亮的名字,因此我们给它们起了一个,并且取得了很好的效果。——Martin Fowler

1

2

3

4

5

6

7

8分层领域模型规约

 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 类来传输。

// 阿里巴巴Java开发手册1.4.0.pdf

JavaBean

JavaBeans 是 Java 中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供 getter 方法和 setter 方法访问对象的属性。名称中的“Bean”是用于 Java 的可重用软件组件的惯用叫法。

Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean 。

但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。 Java Bean 是不能被跨进程访问的。JavaBean 是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被拿去用,这个扳子也提供多种功能(你可以拿这个扳子扳、锤、撬等等),而这个扳子就是一个组件。

java名词解释 抽象,java名词解释相关推荐

  1. java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)

    1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架, 当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...

  2. Java依赖于抽象不依赖于具体,依赖倒置原则(Dependecy-Inversion Principle)

    依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义: 高层模块不应该依赖底层模块,两者都应该依赖其抽象: 抽象不应该依赖细节: 细节应该依赖抽象. 抽象:即 ...

  3. 谈谈你对java的理解,java是“解释执行”这句话对吗?

    谈谈你对java的理解,java是"解释执行"这句话对吗? 先科普下什么是"解释执行"? 什么是"编译执行"? • 解释执行 解释执行时高级 ...

  4. 半编译半解释的Java语言和C++、Python等语言的区别

    1. 引言 我们编写的代码需要按照某些组织制定的规范,对于程序员来说,能够轻松理解:但是对于计算机来说,它们根本无法理解我们编写的代码,只能识别二进制指令. 2. 编译型语言(如C++)和解释型语言( ...

  5. 请解释一下Java多线程回调是什么意思?

    请解释一下Java多线程回调是什么意思? 所谓回调,就是客户端程序c调用服务端程序s中的某个方法A,然后s又在某个时候反过来调用c中的某个方法B,对于c而言,这个B就叫做回调方法.

  6. 解释java程序所使用的命令是,Java程序的执行原理以及解释说明

    在初学Java的时候,我们安装完Java的开发环境后,就可以通过记事本等编辑工具编写程序了.推荐在Windows操作系统中使用EditPlus工具进行编写.由于我使用的是Mac OS,所以,我使用Su ...

  7. java反射通俗解释,谁来帮用通俗易懂的语言解释下java的反射机制

    谁来帮用通俗易懂的语言解释下java的反射机制以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 谁来帮用通俗易懂的语言解释 ...

  8. 【JVM源码解析】模板解释器解释执行Java字节码指令(上)

    本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布 第17章-x86-64寄存器 不同的CPU都能够解释的机器语言的体系称为指令集架构(ISA,Instruction Set Archit ...

  9. 【Java】博客系统——详细解释+代码+详细注释(课设必过)

    目录 前言 博客系统简要分析 一.数据库的设计 1.1 分析 1.2 代码实现(创建数据库和表) 二.封装数据库(JDBC代码的编写) 2.1.首先通过创建Maven项目,基于Small Tomcat ...

最新文章

  1. 使用LaTeX排版如何方便地引用多篇参考文献(不使用插件)
  2. Dijkstra算法的思想和数学归纳法
  3. MM中如何更改物料的评估类
  4. 万能的Seq2Seq:基于Seq2Seq的阅读理解问答
  5. 折纸机器人的步骤图解_折纸图解走路的人
  6. php 接口怎么响应,Stripe PHP API方法响应的结构是什么?
  7. mysql不对称复制数据_mysql UNION all 实现不对称数据统计
  8. 25% 的开发者认为 Rust 是最佳替代,最新 Go 开发者调查报告出炉
  9. python 基础及资料汇总
  10. BABOK - 需求分析(Requirements Analysis)概述
  11. springAOP(Aspect)权限访问页面
  12. typescript是像java吗_typescript参照C#/java/swift学习小结
  13. 0xC00000FD: Stack overflow
  14. autoit3 学习
  15. C# Excel 操作
  16. 网易云课堂[Web安全工程师]第一部分 第二章WEB简介 学习记录
  17. Android让屏幕保持常亮,不熄屏的三种方法
  18. java中的String、StringBuffer和StringBuilder的详细分析
  19. 16届智能车竞赛单车拉力国二经验分享
  20. java毕业设计二手图书回收销售网站Mybatis+系统+数据库+调试部署

热门文章

  1. scala 中的val 、 var 、def
  2. 天线的长度和波长的关系
  3. 【习题之Python篇】习题2
  4. 【引用】解决RPC服务器不可用
  5. C语言职工管理系统课程设计
  6. 一年之计在于春 给农业插上智慧翅膀
  7. JavaScript 字节单位换算函数【详解】
  8. java国际化英语_Java国际化(i18n)UTC
  9. [性格][管理]《九型人格2》 -- 唐·理查德·里索(美)、拉斯·赫德森(美)
  10. RK3566-签批一体机主板方案