`
melphi9
  • 浏览: 99810 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Entity/VO/DTO/Domain Object/Biz Object等名词的含义

阅读更多

一、VO和DTO
VO:  Value Object
DTO: Data Transfer Object
个人理解VO和DTO是类似的东西,原则上VO和DTO只有Public Fields,主要用于进程之间数据传递的问题,VO和DTO不会传递到表示层,在业务层就会被吸收。但看到很多人在建立VO和DTO时,也
含有Setter,Getter属性和一些其它的辅助方法,这也无可厚非,我自己也不能确定这对不对。望大家给出意见。

二、Entity和Domain Object
Entity和Domain Object应该是类似的东西,我觉得这两者概念上可能与Biz Object(Business Object)有所不同,但我看到网上很多文档都把
他们当成类似的东西。
Entity和Domain Object除了有Setter,Getter属性外,还有仅仅属于自己的一些专有(special)方法,如CRUD及其他专有方法,和有一些
Services接口,并不涉及Domain Object与Domain Object之间关系的一些方法。也就是说Domain Object负责数据持久化,这可以由其IDataServices接口来实现。Entity和Domain Object更强调具体是哪一个对象,或者说是实例化的Entity和Domain Object对象。
如果用Domain Object来设计程序,不自觉地就会遵守一些重构策略(如Divergent Change、Shotgun Surgery、Switch Statements等,具体可
以看Rickie的blog),我们知道Domain Driven Design这本书出现在Refactoring这本书之后,看来也是Martin Fowler对Refactoring进一步总结、升华的结果。用Domain Object来设计程序,降低了类之间的耦合,可以不自觉地达到Refactoring结果。看来出现Refactoring后,Domain Object的出现只是时间的问题。

idior的O/R Mapping 基本概念一个困扰我长时间的问题也谈到了Entity和Domain Object

三、Biz Object
个人理解Biz Object更加专注于业务实现,主要强调业务类之间的关系。这也是它与Entity或Domain Object的不同之处。
在具体的程序中有时还会有Manager类,用于管理Biz Object和作为Biz Object的Facade。

我一直没有成型的架构,下一步抽时间看看Domain Model 探索EDRA,我更觉得架构不用通用,可以根据一些典型的业务建立合适的架构,更希望大家能给出好的架构。

分享到:
评论

相关推荐

    Spring Boot Mybatis 自动生成Entity,controller、serviceImpl ,Dao,方便开发,无需手写

    自动代码生成是这个项目的核心功能,它可以帮助开发者快速生成常见的Java开发组件,如Entity、Controller、ServiceImpl、Dao等。Entity类用于数据模型的表示,Controller处理HTTP请求,ServiceImpl定义业务逻辑,...

    VO / DTO / BO / ORM DAO entity DO PO/ POJO(分层领域模型规约)整理

    本文将详细介绍VO (View Object)、DTO (Data Transfer Object)、BO (Business Object)、ORM (Object Relational Mapping)、DAO (Data Access Object)、Entity (实体)、DO (Data Object)、PO (Persistent Object)、...

    自己实现的Android中将任意实体类(Entity、vo、dto、Model)对象(object)转为Json字符串的一个类

    在Android开发中,我们常常定义各种实体类,如Entity、VO(Value Object)、DTO(Data Transfer Object)、Model等,它们代表了业务层或数据层的数据结构。这些类通常包含一组属性和getter/setter方法,便于访问和...

    扩展MyBatisPlus代码生成器实现自定义源码生成,可生成前端页面、vo对象、dto对象等代码

    然而,对于VO对象、DTO对象以及前端Vue页面等非预置的代码生成需求,就需要我们对默认的代码生成器进行扩展和定制。 在MyBatisPlus 3.5.3版本中,代码生成器主要有两种类:`AutoGenerator`和`FastAutoGenerator`。`...

    简单的EntityFramework4.3+三层+DTO 简单Demo

    简单的EntityFramework4.3+三层+DTO,如果需要简化版的,我的资源里有一个不含DTO的版本。 这个Demo的主要功能是: 1、实体类的创建、复杂类型的嵌套 2、实体类的配置(主键、外键、一对一、1对多,多对多) 3、...

    java 自动生成代码 entity,dao,service

    在Java开发过程中,我们经常会遇到编写相似的代码段,如Entity、DAO(Data Access Object)和Service层。这些层在业务逻辑中起到了重要的作用,但它们的创建往往具有很高的重复性,大大降低了开发效率。为了解决这个...

    数据库表转实体类和DTO

    实体类(Entity Class)通常代表数据库中的表,而DTO(Data Transfer Object)则用于在不同层之间传递数据,以避免直接暴露数据库对象。以下是对这个主题的详细说明: 1. **数据库表与实体类**: - **数据库表**:...

    解决报错java.lang.NoClassDefFoundError: org/apache/james/mime4j/MimeException

    该jar包解决报错java.lang.NoClassDefFoundError: org/apache/james/mime4j/MimeException,亲测可用。

    EntityFramework.zip

    DTO(Data Transfer Object)是软件设计模式中的一个概念,用于在系统组件之间传输数据,尤其是在服务层和表示层之间。DTO不包含任何业务逻辑,仅仅是一个数据容器,这样可以避免暴露数据库模型的细节,并提高性能。...

    httpmime-4.1.2.jar org.apache.http.entity.mime

    - 在Android应用中,如果需要上传图片、文档等文件,可以使用`MultipartEntityBuilder`来构建MIME类型的实体,将文件作为请求的一部分发送。 - `MultipartEntityBuilder`允许添加多个`Part`,每个`Part`代表一个...

    基于java spring的前后端分离单体结构的快速开发框架

    spring-boot-plus是一套前后端分离单体...快速生成后台代码: entity/dto/query/vo/controller/service/mapper/xml 集成Swagger/Knife4j,可自动生成api文档 集成Redis缓存 集成HikariCP连接池,JDBC性能和慢查询检测

    generatorSqlmapCustom.rar

    mybatis逆向工程生成Entity/Mapper/Mapper.xml;mybatis逆向工程生成Entity/Mapper/Mapper.xml;mybatis逆向工程生成Entity/Mapper/Mapper.xml;mybatis逆向工程生成Entity/Mapper/Mapper.xml;

    Android 三方数据库ObjectBox使用

    在实际使用中,我们首先需要在项目中添加ObjectBox的依赖,然后定义数据实体,通过注解`@Entity`标记实体类。接下来,创建`BoxStore`实例,它是数据库的入口点,用于创建或打开数据库。在实体类中,我们可以使用`@...

    Dto转实体类 AutoMapper

    在软件开发中,数据传输对象(Dto,Data Transfer Object)和实体类(Entity Class)是两种常见的对象模型,它们在不同的场景中各自扮演着重要的角色。Dto主要用于在系统组件之间传递数据,而实体类通常代表数据库中...

    Netron3X.zip

    throw new ArgumentNullException("The Graphics object is 'null'"); From.Paint(g); To.Paint(g); } /// /// The custom menu to be added to the base menu of this entity /// </summary> /// ...

    entity, C++ 最小实体组件系统单头库.zip

    entity, C++ 最小实体组件系统单头库 实体最小的实体组件系统。特性vt 。ECS标记和组基本事件处理安装在项目中包含 entity 文件夹。基础 0.包含实体#include "entity/World.hpp" 1.定义组件// not

    springboot~ObjectMapper~dto到entity的自动赋值

    在 Spring Boot 项目中,经常需要将 DTO(Data Transfer Object)对象转换为 Entity 对象,以便于业务逻辑的处理。在这种情况下,手动赋值字段是一种繁琐且容易出错的方式。幸运的是,Spring Boot 提供了多种方式来...

    EntityFramework6.1.3源码

    ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,早期被称为 ObjectSpace,现已经包含在 Visual Studio 2008 Service Pack 1 以及 .NET Framework 3.5 Service ...

    objectbox-examples,新的移动数据库objectbox的示例.zip

    - **数据模型**:ObjectBox的核心是定义数据模型,通过创建实体类(Entity)来映射数据库表。每个实体类都有一个唯一的ID(@Id注解),并且可以定义属性(如@Property)来表示列。 2. **Java与Kotlin支持**: - *...

Global site tag (gtag.js) - Google Analytics