`

java service domain dao 分层思路

    博客分类:
  • java
 
阅读更多

今天在参加其他项目研发时,对其项目的java后台的分层有一些看法:

首先,鼓励使用service domain dao 层分层设计概念。

其次,对几层作用的理解:

 

第一:dao层操作单表,不涉及复杂逻辑,主要是表的增删改查操作,完全根据domain的要求来查询数据。

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

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

 

 

正确的设计应该是,一个领域活动会聚合对应一个或一组DAO ,来完成一个领域活动。而一个服务可能包含两个领域活动,比如一个转账的业务,对应两个领域活动。两个帐户的金额分别发生变化,需要操作一组领域活动,而每个活动需要操作很多表(调用多个DAO )。

 

 

 

使用 接口方式可以实现系统之间的松耦合:

一般定义: IUserService  UserService  IUserDomain  UserDomain  IUserDao UserSqlDao   UserHbaseDao

使用接口可以有不同的实现类 ,不需要改代码,可以通过配置更改不同的实现类

分享到:
评论
1 楼 jpsb 2016-04-01  
   最近接触到了领域层的概念,目的是解耦,但仍然觉得service+dao也OK。
“一个领域活动会聚合对应一个或一组DAO ,来完成一个领域活动。而一个服务可能包含两个领域活动,比如一个转账的业务,对应两个领域活动。两个帐户的金额分别发生变化,需要操作一组领域活动,而每个活动需要操作很多表(调用多个DAO )”看到这句话后,一下子释然了。
感谢大牛!  

相关推荐

    Service层和DAO层解析

    在分层架构中,Service层和DAO层的解耦是非常重要的。Spring框架通过依赖注入(Dependency Injection,DI)实现了这一目标,使得Service层可以通过接口引用DAO层的实现,而不是直接创建DAO实例。这增强了系统的可...

    action层,dao层 ,service层,entity层1

    标题和描述中提到的"action层,dao层,service层,entity层"是这种分层架构的典型组成部分,下面将详细解释每一层的功能和它们之间的交互。 1. **Action层(控制层)**: 这一层主要负责接收用户的请求,进行业务...

    java javascript

    在Java Web开发中,通常采用分层架构来组织应用程序,如描述中所示,主要分为四层:Action层、Service层、DAO层以及Domain层。这种结构有助于提高代码的可维护性和可扩展性。 1. **Action层**: Action层是业务...

    ssh分层项目聚合demo版

    将ssh工程拆分为多个模块...一个父工程maven project(pom),然后在创建四个子模块(maven moudule),其中四个子模块,分别为 domain、dao、service、web,也就是将四层的内容分别独立为一个项目,进一步将耦合性降低。

    分层JavaWeb模板

    基于maven的WebApp,主要包括:DAO包(数据访问层),Service层(业务逻辑层),Domain(实体类)。完成了对数据库的连接,以及对数据库的增删改查。另外包括在(UI)网页上对数据库中book表格的展示

    基于Java在线学习平台系统的设计与实现.pdf

    后台实现上根据抽象层级分层细化,抽象成dao、domain、service、servlet、utils、jsp等六层。 dao层主要是做数据持久层的工作,负责与数据库进行联络的任务都封装在此,以及有关数据库连接的参数都在Spring的配置...

    购物商场实现

    第三步:分层(创建包) 公司的域名反写 + 项目名称 www.fkjava.org org.fkjava.ec org.fkjava.ec.controller: (servlet、filter、base) org.fkjava.ec.service: 业务层 org.fkjava.ec.mapper|dao: 数据访问层 ...

    heima_ssm_ssm_

    在SSM整合中,Spring主要负责管理应用程序中的对象,包括数据访问对象(DAO)、业务服务对象(Service)以及控制器(Controller)。通过DI,Spring可以自动装配这些组件,使得代码更易于测试和维护。 2. **MyBatis...

    testweb20200123第一个sqlSessionFactory.zip

    在Java Web项目中,分层可能包括:表现层(View)、控制层(Controller)、服务层(Service)、领域模型层(Domain Model)和数据访问层(Data Access)。每层都有明确的职责,如Controller层负责接收和转发请求,...

    ssh架构简介.pdf

    在SSH架构中,Spring用于管理Service层和Dao层的实例,通过XML配置文件或者注解方式实现对象的初始化和装配。Spring的IoC(Inversion of Control,控制反转)容器可以实现对象间的解耦,提高代码的可测试性和可维护...

    struts2+hibernate3.2+spring2.0配置+入门实例

    在企业级Java应用中,常见的分层架构包括: - **UI层(用户界面层)**:负责与用户交互,接收和返回用户的请求。在这个示例中,我们将使用Struts2作为UI层框架。 - **业务逻辑层(Service层)**:处理具体的业务...

    BadmintonCourt项目文档1

    该项目采用了经典的三层架构设计,包括Domain层(领域模型层)、Dao层(数据访问层)、Service层(服务层)以及Controller层(控制器层),并利用Mybatis作为持久层框架,Oracle作为数据库系统,同时结合Junit进行...

    JAVA 课设 满汉楼餐厅点餐系统 程序设计报告

    - **分层架构**:采用典型的MVC(Model-View-Controller)架构模式。 - **Model**:负责业务逻辑和数据处理。 - **View**:负责用户界面展示。 - **Controller**:处理用户的请求,并调用相应的Model和View组件。...

    day23_综合案例&总结2

    - 分层设计:将代码组织在不同的包中,包括`domain`包(存放JavaBean),`utils`包(存放工具类),`dao`包(数据访问对象,处理数据库操作)和服务层(`service`包,处理业务逻辑)。 3. **开发步骤**: - 开发...

    layers

    在Java中,可以通过JavaBean、EJB(Enterprise JavaBeans)、Spring的Service层或DAO(Data Access Objects)实现。 3. **数据访问层(Data Access Layer)**:这是与数据库交互的层面,负责数据的存储和检索。在...

    【RBAC】基于springboot+shiro实现RBAC权限后台管理系统.zip

    |—— service —— 业务层 |—— common |—— |—— annotation —— 项目中使用的注解 |—— |—— aspect —— 项目中的aop |—— |—— config —— springboot配置bean |—— |—— constant —— 项目中使用...

    web前端编码规范

    3. **业务逻辑层(Service)**:实现具体的业务逻辑,调用DAO层进行数据处理。 4. **控制器层**:主要由Servlet组成,处理用户请求并将请求转发给适当的处理程序。 5. **表现层**:由JSP页面构成,用于展示数据和...

Global site tag (gtag.js) - Google Analytics