zoukankan      html  css  js  c++  java
  • 关于DAO、Domain、Service三层

    DAO层 

    Data Access Object

    操作单表,不涉及复杂逻辑,主要是表的增删改查操作,完全根据Domain的要求来查询数据,会对每个要操作的数据库表定义一个Dao,对具体的操作要定义一个类似函数说明。

        eg: UppCodeInfo findByCodeNo(String codeNo);JPA方式

    Domain层

    考虑业务逻辑,例如过滤条件,放行或者返回,以及数据的处理,为调用dao层做好准备,一个Domain可以调用一个或一组相关的Dao层.

        eg:@Entity
             @Table(name = "upp_code_info")
             public class UppCodeInfo {属性....对应数据库表中的字段,要在后面生成set(),get()方法}

    Service层

    调用一个或一组Domain层,主要是展现需要开放出去的接口,其中domain层不是所有的接口都要再service层 体现的,可能仅在service层开放几个接口出去,此外,主要接口需要对接受的参数要尽量的扩大化,也就是说可以容纳各种类型的参数的接入 (Object),然后需要在service层做好转换,以备domain层使用。具体的逻辑实现在此层实现。即函数在该层实现。

    controller层

    作用在于过滤参数、和部分加解密和简单的逻辑处理 ,或者对于页面数据的封装,你可以理解为一个入口而service只需要处理复杂业务。

    总结

    底层数据库(具体数据的存储)→ DAO(从表中读取数据)→ Domain(将表与实体进行关联,进行实体的定义,set,get方法的定义) →  service(实现逻辑,进行数据关联,方便底层取数据)→ controller(方便为前段提供数据)。

    附:三层架构中的层

    DAL:Data Access Layer

    数据访问层,对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。

    BLL:Business Logic Layer,也称作BIZ层

    业务逻辑层,主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。如果说数据层是积木,那逻辑层就是对这些积木的搭建。

  • 相关阅读:
    刷题的 vscodeleetcode
    一个简单的小程序演示Unity的三种依赖注入方式
    WCF服务端运行时架构体系详解[上篇]
    通过WCF扩展实现消息压缩
    通过“四大行为”对WCF的扩展[原理篇]
    [WCF权限控制]利用WCF自定义授权模式提供当前Principal[原理篇]
    [WCF权限控制]ASP.NET Roles授权[下篇]
    [WCF权限控制]通过扩展自行实现服务授权[提供源码下载]
    通过自定义ServiceHost实现对WCF的扩展[实例篇]
    [WCF权限控制]WCF自定义授权体系详解[实例篇]
  • 原文地址:https://www.cnblogs.com/Yan3399/p/14252847.html
Copyright © 2011-2022 走看看