java开发时为什么要dao和service都是model层吗

java开发时为什么要dao和service都是model层吗,第1张

dao层:dao层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的 *** 作,具体到对于某个表、某个实体的增删改查

service层:service层叫服务层,被称为服务,肯定是相比之下比较高层次的一层结构,相当于将几种 *** 作封装起来。

service层要使用接口来定义有以下几点好处:

1、在java中接口是多继承的,而类是单继承的,如果需要一个类实现多个service,用接口可以实现,用类定义service就没那么灵活。

2、要提供不同的数据库的服务时,只需要面对接口用不同的类实现即可,而不用重复地定义类。

3、编程规范问题,接口化的编程为的就是将实现封装起来,然调用者只关心接口不关心实现,也就是“高内聚,低耦合”的思想。

想要了解更多有关Java开发的相关信息,推荐咨询千锋教育。北京千锋互联科技有限公司(下面简称“千锋教育”),成立于2011年1月,立足于职业教育培训领域,公司现有教育培训、高校服务、企业服务三大业务板块。教育培训业务分为大学生技能培训和职后技能培训;高校服务业务主要提供校企合作全解决方案与定制服务;企业服务业务主要为企业提供专业化综合服务。

关于系统架构和软件分层的概念我们在前几期的文章中曾经介绍过多次了。今天,回龙观java课程就来详细了解一下,软件架构中的分层都有哪些类型。希望大家通过对本文的阅读,能够对软件架构领域有更多的了解和认识。

经典的三层架构:

1基础层:dao,帮助类,IO读写,资源加载等一些基础设施,他们作为整个系统基础的模块可以组合成业务层和服务层

2业务层和服务层:典型的就是service,这里承载更多的是业务的实现,资源的组合调度,事务实现,等等,这里是整个系统核心的地方,下面整合底层dao以及事务,根据业务和场景灵活的把业务逻辑使用底层的基础单元拼接组合起来,上面为表现层提供具体的业务处理逻辑

3表现层:接受外部的请求,并把调用对应的service *** 作具体业务,把终结果反馈给调用者或是用户

四层架构,在基础层基础之上还可以在分出一层:领域层,基础层还是提供基本的数据 *** 作和IO与网络 *** 作,不过领域层对基础层再来一次封装和整合,目的也是方便整合底层资源方便service层调用,简化业务层和基础层的复杂依赖

静态业务对象

ViewObject:VO界面展示用到的数据对象

DomainObject:DO领域层对象,一般可以简约的理解为javabean对象,从业务中抽取的基本模型类

BussinessObject:BO业务对象一般也在service业务层,如果DO不能完全表达,可以使用BO获取更多信息的表达,并且还可以封装重用DO中的实体信息

PersistantObject:PO持久存储对象,一般作用于dao层,和数据库实体对应

DataTransferObject:DTO数据传递对象,用于封装参数,数据中转会,重构过程方法列表会用到

动态处理对象:

Controller控制器,Manager管理类,Service服务类,Repository,DAO数据源,Client客户端,Dispather转发器,Handler处理器,Interceptor拦截器

Helper,Utils帮助类

动态的配置文件与属性:

一些经常用到的开关和阈值一定要写在配置文件中,或有配置中心可以下发,不要在程序中写死,而且要有对相应的刷新机制api接口,调用后强制刷新配置参数

常用的比如:

活动的开始结束日期

业务中的大值,限制值等阈值

外界的URI:文件上传地址,静态资源位置,等等

等等一切可以借鉴Ioc理念抽取出来的配置变量

建议 楼主了解下MVC

一般的项目大概分为4层

dao 就是数据 *** 作层

一般放对数据库进行 *** 作的方法,比如查找某条数据

biz 业务处理层

对用户的数据进行业务逻辑处理比如注册时,判断用户注册的用户名是否已存在,如果已存在返回用户错误信息,否则将用户注册的信息写入数据库

servlet 逻辑判断层

对页面的请求响应数据进行逻辑处理,如封装等

jsp 表现层

将程序处理的最终结果显示给用户

他们之间的联系就是,比如注册:

用户在jsp页面进行表单填写,点击提交到一个servlet,servlet将注册信息封装成javaBean交给biz层处理,这时候biz层对javaBean解封将用户注册的用户名提取出来调用dao层的checkUserName()进行判断该用户名是否已存在如果存在返回一个信息给servlet告知用户该用户名已存在,请重新注册如果该用户名不存在,说明可注册,biz再调用dao层的savaUser()方法将用户的注册信息写入数据库,返回servlet一个注册成功的信息,最后由servlet将这些处理的最终结果返回给jsp页面给用户

建议楼主去多看看别人的项目,或者自己写些小项目这样在写程序的过程中能更贴切的理解这些过程存在的意义

总之,分层思想的存在是更方便的管理和维护

dao完成连接数据库修改删除添加等的实现细节,例如sql语句是怎么写的,怎么把对象放入数据库的

service层是面向功能的,一个个功能模块比如说银行登记并完成一次存款,UI要把请求给service层,然后service曾将这一个case分解成许多步骤调用底层的实现完成这次存款,dao就是下面那层

dao就是把数据存起来,之所以service的方法会有雷同只不过是因为service得需求不是很复杂不用再service里面完成太多包装或者处理过程可以直接调用dao的方法就完成的请求处理例如就要save一个对象,而这个对象是封装好的,dao里面有个方法专门save封装好的对象于是service的方法就仅仅调用一下就o了,函数签名自然很像了

service不能直接接触持久层,而dao是持久层或者直接访问持久层

有的时候只是为了分层清楚,为了将来scale up的时候方便我们才把service和dao分开,其实没必要分开的

以上就是关于java开发时为什么要dao和service都是model层吗全部的内容,包括:java开发时为什么要dao和service都是model层吗、软件架构中的分层都有哪些类型、java中层的概念 项目该怎么分层 比较大的项目怎么分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10111492.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存