2016 - 2024

感恩一路有你

java Service层和Dao层真的有必要每个类都加上接口吗?

浏览量:2007 时间:2021-03-31 19:20:04 作者:admin

Service层和Dao层真的有必要每个类都加上接口吗?

简单来说就是看情況。

主要看你项目:

  • 变动情况
  • 以及架构
  • 人员
  • 项目情况

比如,项目原来使用的hibernate,后续可能要切换为mybatis,那么dao就需要使用接口。这就不会影响上层代码的修改。

再比如,项目是个单体应用,任何代码的修改都需要重新编译整个项目,那可以不用接口。而如果项目是分模块编译部署的,那就可以使用接口解耦,假设dao有修改,只需要重新编译部署dao模块即可,不影响上层模块。

再来,如果项目组新手较多,可能简单的代码结构更适合。复杂项目结构的学习成本要高。

假如,项目进度很急,可以使用简单粗暴的方式先撸~

可以用经济学上的成本来解释原因。

经济学上的成本定义是:你做一件事,所放弃的其它事情中,价值最大的那件事的价值就是你做这件事的成本。

你使用接口的成本就是你不使用接口所花费的成本(包括后续的维护成本)。

如果项目变动多、模块部署、项目不急,那使用接口的成本就低于不使用接口的成本,虽然早期可能不用接口看起来更简单;反之,则不用接口的成本低,甚至框架都可以不使用~

毕竟工具是为了提高效率的,何必和自己过不去呢!

如何领悟Java三大框架?

Hibernate:

Hibernate主要就是ORM(对象关系映射)由框架 配置文件实现的。让实体类和数据库表进行一一对应关系。让实体类先和数据库表对应,让实体类属性和数据库表中字段一一对应。这样就不需要操作数据库表,而操作表中对应的实体类对象。以此来实现对应的增删改查操作。

同样对于dao层的框架还有Mybatis,Mybatis不是一个完全的ORM框架,MyBatis的sql需要开发人员自己编写,但同时提供了输入和输出的自动映射,所以可以认为是半自动的ORM框架。Mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象,对于不断变更的客户需求更加灵活。但是灵活的前提是Mybatis无法做到数据库无关性,如果需要实现支持多种数据库的软件则需要自定义多套sql映射文件,工作量大。而Hibernate对象关系映射能力强,数据库无关性好。

Struts2:

Struts2处理请求是为每个请求都创建一个单独的Action类,Action类当中的Field属性参数作为输入和输出参数用IOC来依赖注入的方式,是基于类的开发。

同样的SpringMVC则采用输入Request和Reponse作为参数,返回ModelAndView的方式,是单例的模式,且是基于方法的模式。

spring:

Spring最核心的概念就是DI(依赖注入)和AOP(面向切面编程),DI也称为IoC(控制反转)。有了Spring之后,通过IOC,所有的对象都可以从Spring容器中得到。每个对象由Spring注入到对应的地方。通过IoC先由Spring创建对象后,才能进行下一步对象注入(DI),所以说DI依赖IOC。

java java预编译 java接口开发实例

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。