1、什么是POJO
POJO(Plain Old Java Object),从字面上翻译为“纯洁老式的Java对象”,但大家都使用“简单java对象”来称呼它。
定义:POJO是一个简单的、普通的Java对象,它包含业务逻辑处理或持久化逻辑,但它不是JavaBean,不是EntityBean,它不具有如何特殊的角色,不继承或不实现其他Java框架的类或接口。
可以理解为 Action
2、什么是JavaBean
JavaBean实际上是指一种特殊的Java类,它通常用来实现一些简单的功能,并且可以很容易的被重用或插入到其它应用程序中去。所有遵守 “一定编程原则” 的Java类都可以被成为 JavaBean。
JavaBean是一个遵循特定写法的Java类,是一种Java语言编写的可重用组件,它的方法命名、构造及行为必须符合特定的约定:
1.这个类必须有一个公共的(public)无参构造函数;
2.所有的属性必须是私有化的;
3.私有化的属性必须通过public类型的方法(get方法和set方法)暴漏给其它程序,并且方法的命名也必须遵循一定的命名规范;
4.这个类应该是可序列化的(比如可以实现 Serializable 接口,用于实现 bean 的持久性)。
可以理解为有序列号的 Entity
3、什么是 Bean
Bean的中文含义是“豆子”,Bean的含义是可重复使用的Java组件。所谓组件就是一个由可以自行进行内部管理的一个或几个类所组成、外界不了解其内部信息和运行方式的群体。使用它的对象只能通过接口来操作。
Bean并不需要继承特别的基类(BaseClass)或实现特定的接口(Interface)。Bean的编写规范使Bean的容器(Container)能够分析一个Java类文件,并将其方法(Methods)翻译成属性(Properties),即把Java类作为一个Bean类使用。Bean的编写规范包括Bean类的构造方法、定义属性和访问方法编写规则。
Java Bean是基于Java的组件模型,由属性、方法和事件3部分组成。在该模型中,JavaBean可以被修改或与其他组件结合以生成新组件或完整的程序。它是一种Java类,通过封装成为具有某种功能或者处理某个业务的对象。因此,也可以通过嵌在JSP页面内的Java代码访问Bean及其属性。
4、什么是 PO
PO(persistent Object):持久对象,可以看成是与数据库中的表相映射的Java对象,最简单的PO就是对应数据库中的一条记录,多条记录用 PO集合。PO中不应该包含任何对数据库的操作。
1.有时也称为 Data对象,对应数据库中的entity,可以简单的认为一个PO对应数据库中的一条记录。
2.用于持久化 insert/delete 操作。
3.PO中不应该包含如何对数据库的操作。
4.PO的属性是和数据库表的字段一一对应的。
5.PO对象需要实现序列化接口。
PO可以看作是符合JavaBean规范的纯Java对象
5、什么是 DTO
DTO(data transfer Object):数据传输对象,用在跨进程传输或远程传输时,它不应该包含业务逻辑。
比如一张表有100个字段,那么对应的PO就有100个属性(大多数情况下,DTO 内的数据来自多个表)。但view层只需显示10个字段,没有必要把整个PO对象传递到client,这时我们就可以用只有这10个属性的DTO来传输数据到client,这样也不会暴露server端表结构。到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO(View Object)。
6、什么是 VO
VO:value Object 值对象/ view Object 表现层(视图)对象。
1.VO(value Object):值对象,精确点讲它是业务对象,是存活在业务层的,是业务逻辑使用的,它存活的目的就是为数据提供一个生存的地方。
2.VO(view Object):视图对象,用一个VO对象对应整个界面的值。
1)、主要对应页面显示(web页面/swt、swing界面)的数据对象。
2)、可以和表对应,也可以不,这根据业务的需要。
7、什么是 DAO
DAO(Data Access Object):数据访问对象,
1.主要用来封装对DB(数据库)的访问(CRUD操作)。
2.通过接收业务层的数据,把POJO持久化为PO。
8、什么是 BO
BO(Business Object):业务对象,封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。
主要作用是把业务逻辑封装为一个对象,这个对象可以包括一个或多个其它的对象。
比如一个简历,有教育经历、工作经历、社会关系等等。
我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。
建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
这样处理业务逻辑时,我们就可以针对BO去处理。