Name | Description | Scope |
---|---|---|
PO | - Persistent Object(持久对象); - 映射到DB表; - 用于持久层。如DB; |
DAO、Service |
VO | - Value Object(值对象,贫血模型,简化BO) - View Object(视图对象。如age小于18的,显示为“未成年人”;大于18岁显示为“成年人”) { “name”: “Cooper”, “ageDescription”: “成年人” } DTO表示法(由页面根据业务规则进行转换显示): { “name”: “Cooper”, “age”: “20” } |
- Value Service:Service - View Object:Controller、Client |
DTO | - Data Transfer Object(数据传输对象) - 系统/服务之间传输的对象; - 类似于VO,但包含的是原始数据。如age - 删减的BO对象。如删减fields或methods; |
Controller、Client |
BO | - Business Object(业务对象); - 包含全属性、setter/getter、业务方法(通过属性进行业务计算的方法)等; - 利用DAO、PO、VO(Value Object)进行业务操作; |
Service |
DO | - Domain Object(领域对象【Domain-Driven Design】,类似BO。主流。充血模型,可包含多个VO) | Domain Layout |
DO | - Data Object(数据对象【阿里巴巴的开发手册】。部分) - 等同于PO |
DAO、Service |
POJO | - Plain Old Java Objects(普通的旧 Java 对象) - 一个普通的 Java 对象; - 除Java语言规范强制执行的限制之外,不受任何特殊限制的约束(如继承框架类、包含类路径等); - 通常用于表示一些简单的数据模型或对象; |
|
Java Beans | - 可序列化的 POJO(需实现Serializable接口); - 具有无参构造函数; - 允许使用遵循简单命名约定的 getter/setter访问属性; - 可实现其他接口。如多线程接口(Runnable); |