javaweb中DAO和接口的使用问题
在javaweb开发中,有看到过别人写的代码里面既有DAO层,又有接口,这两个可以同时用吗?且他的DAO层和接口中有相同的方法,这个算重复吗?我觉得没有必要。还是说DAO...
在javaweb开发中,有看到过别人写的代码里面既有DAO层,又有接口,这两个可以同时用吗?且他的DAO层和接口中有相同的方法,这个算重复吗?我觉得没有必要。还是说DAO层是针对数据库操作的,而接口是针对这些方法的一个高度抽象?
展开
3个回答
展开全部
为什么要使用面向接口编程, 为的是程序的扩展性更好! 把这个接口的对象做为一个属性, 再通过这个属性来调用相对应的方法并不多余! 但它的效果正常的编程也看不到!
能见到效果的时候是在: 系统变更, 该Dao里的大部分方法都不能使用, 那这时候可能需要重新写一个另外的Dao2来做, 这个时候, 如果你直接new了一个Dao的对象放在里边, 那需要更改的就是与这个类相关的所有其他类(因为这个Dao类已经不能用了), 而如果你使用了Interface做为一个属性, 只需要在Spring配置文件中, 将原来的Dao改为重新写的Dao2实现类! 其他的都不需要修改, 程序就可以完全的跑起来! 这个时候, 你还认为多余吗?
能见到效果的时候是在: 系统变更, 该Dao里的大部分方法都不能使用, 那这时候可能需要重新写一个另外的Dao2来做, 这个时候, 如果你直接new了一个Dao的对象放在里边, 那需要更改的就是与这个类相关的所有其他类(因为这个Dao类已经不能用了), 而如果你使用了Interface做为一个属性, 只需要在Spring配置文件中, 将原来的Dao改为重新写的Dao2实现类! 其他的都不需要修改, 程序就可以完全的跑起来! 这个时候, 你还认为多余吗?
展开全部
DAO层是针对数据库操作的。DAO层中包括DAO接口还有实现类,虽然方法都是相同的,但是安全性比较高吧。这是spring实现的一种表现:依赖注入
更多追问追答
追问
就是DAO接口还有其实现类,还有就是普通的接口,然后普通的接口,在用普通类类实现,再把实现DAO的类作为一个属性,这是多此一举吧,我觉得
追答
不会啊 一般的一个模块 就是dao包,然后里面有接口和实现类,这样的话,后期人员维护比较好维护,而且可扩展性比较大,比如说我在多个类需要用到dao中的方法,那我在多个类中只需要定义一下这个dao接口,getter、setter在spring里面注入一下,我就可以用了,很方便的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DAO层就是interface, 有相同的方法只说明参数个个数不同或者返回类型不同,或者根本不是同一个类,DAO层是接口,后面还有实现这接口的实现类的,主要都是操作数据库.
追问
我看他们的DAO是interface,还有一个服务层的Interface,里面的方法和返回值都是一样的,参数个数也是相同的,这个没必要了吧?
DAO和interface使用一个就可以了吧?
追答
只能说你说的那个Interface可以用DAO去实现,不用分开,你设下debug看,系统哪个地方会用到,没用到可以删除,有用到的话可以放入DAO里. 另外要了解的是,DAO层外还有一个工厂DAO,这个工厂DAO管理所有DAO的,同时也可能拥有子DAO相同的类名参数以及返回值,例如在ACTION层调用DAO的实现类时,可以用父类的接口方法,子类的可以不用有这接口方法 ,但子类要有其实现类,若父类没有实现这方法的话。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询