Bean Form DTO VO Entity

这些属于MVC的Model层,有很多共性。都具有私有属性、Setter/Getter。。。

  • 1. Bean

Java是面向对象编程,对象有方法和属性,需要对象实例来调用方法和属性(即实例化); 凡是有方法或属性的类都需要实例化,这样才能具象化去使用这些方法和属性; 实际上确实是通过反射、代理来实现的。

  • 2. Form

主要用于接收页面表单中的数据或者页面显示用数据的存储,包含校验Validate方法。

  • 3. DTO

Data Transfer Object数据传输对象的简称,多用于多个系统之间,网络通信,数据库存取等。将调用或返回的数据保存在DTO中从而减少调用负载。它不包含业务逻辑处理,但可以有数据整合性的校验。DTO需要注意的是必须序列化,即implements Serializable

  • 4. VO

Value Object值对象的简称,敏捷开发方法的创始人之一Martin Fowler认为“Value Object as a small object such as a Money or date range object”。 主要用于领域驱动设计(Domain Driven Design),VO的值/实例一般是不会变的(比如下个月的第一个工作日)。一般没有Setter方法通过构造函数设定值。

  • 5. Entity

实体,多用于DB中以表为单位存取数据,类中定义了表的每个字段的Setter/Getter。一个Entity实例即为表中的一条数据。起源于EJB,比如EJB1.x、2.x中的EntityBean,EJB3.x的JPA。

  • 综述:

VO多用于金钱或者时间等代表价值的对象,比较特殊。 JavaBean更像是一个总称,他包含了Form(与页面交互)、DTO(各种信息的集合体)、Entity(与DB交互)

猜你喜欢

转载自www.cnblogs.com/borshj/p/12753926.html