关于SSH框架中的接口类的作用
虽然了解接口的含义及作用,但是在实际应用中一直想不通:SSH框架中Service层和DAO层中的接口类有什么实际作用?如果需求变更小,不需要修改方法名、参数列表和返回值,...
虽然了解接口的含义及作用,但是在实际应用中一直想不通:SSH框架中Service层和DAO层中的接口类有什么实际作用?
如果需求变更小,不需要修改方法名、参数列表和返回值,那么修改实现中的方法就不会影响其他地方的调用,跟有没有接口无关。
如果需求变更大,需要修改方法名、参数列表和返回值,那么就需要先改接口,再改实现,这种情况下其他地方的引用也会受到影响,也跟有没有接口无关。
这样的话接口岂不是没有起到什么作用吗?反而很累赘的感觉。。。
望有经验的高手介绍一下,最好能举个实际的例子,谢谢!! 展开
如果需求变更小,不需要修改方法名、参数列表和返回值,那么修改实现中的方法就不会影响其他地方的调用,跟有没有接口无关。
如果需求变更大,需要修改方法名、参数列表和返回值,那么就需要先改接口,再改实现,这种情况下其他地方的引用也会受到影响,也跟有没有接口无关。
这样的话接口岂不是没有起到什么作用吗?反而很累赘的感觉。。。
望有经验的高手介绍一下,最好能举个实际的例子,谢谢!! 展开
3个回答
展开全部
一、Spring
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。
二、STRUCTS
Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。
三、Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。
二、STRUCTS
Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。
三、Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企...
点击进入详情页
本回答由Storm代理提供
展开全部
我们应该面向接口编程。
接口只是定义一些规范,表示对外公开的方法,具体实现应该交给子类去实现,如用jdbc连接数据库,也就是DAO层。比如此时有两个数据库,oracle、mysql。此时这个接口需要公开的功能为增、删、查、改。由于oracle与mysql有些方面是不一样的。所以这个DAO接口就需要有两个子类。一个为以oracle操作的DAO,另外一个是以mysql操作的DAO。这样对于Service层来说,它根本不关心你是oracle还是mysql实现,他只关心你的DAO给我提供了什么功能。我能达到功能就行了。具体实现他不关心。这样,如果以后想连Sql Server数据库时,只需要新增加个DAO实现类,Service层是不用动的。对于它只知道DAO。具体实现可以通过spring的依赖注入到DAO实例中。
如果没有面向接口编程,即在Service层对应一种实现类,并且实现类里面的方法名称或参数都可能不太一样。当你想改变成另外一种数据库实现时,那可就麻烦多了。
接口只是定义一些规范,表示对外公开的方法,具体实现应该交给子类去实现,如用jdbc连接数据库,也就是DAO层。比如此时有两个数据库,oracle、mysql。此时这个接口需要公开的功能为增、删、查、改。由于oracle与mysql有些方面是不一样的。所以这个DAO接口就需要有两个子类。一个为以oracle操作的DAO,另外一个是以mysql操作的DAO。这样对于Service层来说,它根本不关心你是oracle还是mysql实现,他只关心你的DAO给我提供了什么功能。我能达到功能就行了。具体实现他不关心。这样,如果以后想连Sql Server数据库时,只需要新增加个DAO实现类,Service层是不用动的。对于它只知道DAO。具体实现可以通过spring的依赖注入到DAO实例中。
如果没有面向接口编程,即在Service层对应一种实现类,并且实现类里面的方法名称或参数都可能不太一样。当你想改变成另外一种数据库实现时,那可就麻烦多了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SSH框架中Service层和DAO层中的接口类有什么实际作用?
DAO层用途是直接和数据库发生关系。习惯上DAO层都是最小单元,比如说你要在数据表一个字段里插入两条数据,你可以通过循环语句,在DAO层中实现,但是这样不好,因为它不是最小单元
比如这个问题吧,你解决的时候,做好就在DAO层中写一个方法,单一的插入一条语句的方法,
然后再SERVER层,通过循环,来连续插入,当然这时候就要调用DAO层的方法。
这么解决的好处是 耦合度降低,DAO层是最小单元,然后SERVER层通过循环调用DAO层,这样就分离开了,就算你以后不这么用,你DAO层也可以独立开。懂了吗?
DAO层用途是直接和数据库发生关系。习惯上DAO层都是最小单元,比如说你要在数据表一个字段里插入两条数据,你可以通过循环语句,在DAO层中实现,但是这样不好,因为它不是最小单元
比如这个问题吧,你解决的时候,做好就在DAO层中写一个方法,单一的插入一条语句的方法,
然后再SERVER层,通过循环,来连续插入,当然这时候就要调用DAO层的方法。
这么解决的好处是 耦合度降低,DAO层是最小单元,然后SERVER层通过循环调用DAO层,这样就分离开了,就算你以后不这么用,你DAO层也可以独立开。懂了吗?
追问
我想问的是接口有什么实际作用,不是问分层有什么好处。。说的直接一点就是写不写接口根本就没有什么影响,为什么还要写接口呢?
麻烦您再帮忙稍微解答一下,谢谢!
追答
写不写接口是没有直接影响,一个程序,你要实现的功能完成了,就OK了。这不错。
但是一个接口可以的实现,可以有很多不同的内容。你在调用的时候,可以根据需要去调用。
比如你创建一个“结果”接口,然后写四个方法,分别是加减乘除,然后你可以根据需要调用它们,而父类就是接口,子类就是实现了这些方法的类。
用接口代码量会提升,但是也更清晰,而且有利于扩展啊,比如你想在实现加减法混合运算,你可以在接口中重新写一个新方法,然后实现它,在调用的时候直接调用了。层次分明,扩展性强。
因为如果你以后写一些大的程序,难免会有不足之处,需要改进添加新元素,于是你有了从前的接口,你在接口里面定义方法,这样不是很省事吗?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询