Model、Entity、DAO、Domain、Data、Logic、Repository、Service、Controller、View等各层的作用区分

籍辰沛
2023-12-01

Entity

Entity(实体)包中的类和数据库中的表时一一对应关系,包括字段名称、数据类型。

Model

一般地,Model(模型)存的是实体(Entity)类的模型。为了给前端提供实际使用的数据,一般在Model会对某些字段等进行处理,如表里存的性别字段,gender,保存的是f/m,但是提供给前端的时候需要把f/m替换成女/男。还可以添加新的字段,如把省province、市city、区district、地址address合并成新的字段detailed_address:省+市+区+地址。

Domain

Domain(领域)一般是多个Model的组合,如查看一个订单详情,除了订单编码、商品名称等订单相关的信息,可能还需要把用户信息、发货地址、支付信息等展示出来,这时就可以按Domain返回数据。

Repository

Repository(仓库)主要是针对数据进行操作,包括对不同类型数据库(如mysqsl、redis、mongodb等)中的数据进行整合。业务层应该直接和Repository打交道。

DAO

DAO(DataAccessObject) 数据访问层,直接操作数据库表,进行增删改查等操作。

Data

Data(数据层),用于缓存数据写入和读取、配置参数数据的读取等。

Logic

Logic(逻辑层)主要负责数据校验、业务流程处理等。

Service

Service层主要负责业务模块的逻辑应用设计。作用如下:

  1. 封装通用的业务逻辑,操作。如一些数据的检验,可以通用处理。
  2. 与数据层的交互。
  3. 其他请求:如远程服务获取数据,如第三方api等。

Controller

Controller(控制器)层主要处理外部请求,一般在此层调用Serice层的接口来控制业务流程,根据业务情况返回相关数据。

View

View(视图层)与控制层结合比较紧密,一般地,View主要负责展示应用的前端页面。

Action

同Controller,Java中使用。

POJO

同Entity,Java中使用。

 类似资料: