前端出身,没专门做过 Java ,但是维护过 Java 代码,个人理解的各种 O:
首先为什么要有 O ,Java 是一个支持类型的语言,一个 Web 业务里各个层的方法不可能出入参都是简单类型,复杂出入参要是不写专门的类型就如 @
dif 说的,可以直接入参一个变量为 Map<Stirng, Object>,返回也是,但是很明显不优雅, 比如无法编辑器自动提示,无法自动生成有意义的接口文档,所以最好要写个专门的类文件去定义,那这个类文件叫啥名呢,可以叫任何名,类名也可以叫任何名,只不过为了团队统一,约定叫 dto vo do 什么的,其实就是一个普通的 java 文件。
第二为什么要分开各种 O ,上边说了,这个主要是为了支持类型的,那很明显分层多了后,不同层的出入参虽然字段可能都一样,但自已都在做自已的事,本质上就不是同一个类型了,要是还用同一个 O ,迟早会遇到这一层要加个什么东西,但另外一层不需要加,这里时候要么你改,要么别人改,所以不如一开始就分开。
总之一句话总结:Java (或者说 Spring 这种框架)各种方法的出入参最好要有一个独立的类型来表示,那这个类型文件就是 O ,各种方法又分 Controller 的,Service 的,那类型文件最好不要用同一个,最好自已定义自已的,那就分开了各种 O 。