论坛首页 Java企业应用论坛

解释一下,为什么需要接口而不直接实现类。

浏览 30508 次
精华帖 (0) :: 良好帖 (23) :: 新手帖 (6) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-06  
移植方便

spring aop的需要

测试时, 便于mock...
0 请登录后投票
   发表时间:2008-10-06  
引用
再说了,一个接口会包含多个实现么?我想大部分时候一个接口都只有一个实现类吧?
复杂业务逻辑就必须搞个接口,证明自己?
如果你真做了很久的Java,我只能说你这么多年白做了。。。
囧丁乙,你这句话把我吓到了。。。
3 请登录后投票
   发表时间:2008-10-06  
刑天战士 写道
对于我来说,Dao的接口,可以让我在unit test的时候用另一种mock实现来完成单元测试,还有service也一样。对于大多数model,没必要,除非你要搞什么Pattern还有有些时候用多态……

赞同,DAO的接口可以以持久化POJO之外的其他形式来实现,xml..或者纯文本
0 请登录后投票
   发表时间:2008-10-06  
各位看到这里有如下问题:
OO的逻辑到底是什么?到底有几个人深入的剖析了spring 的源代码?
简单的web应用难道不需要规范吗?
0 请登录后投票
   发表时间:2008-10-06  
axeon 写道
除非是逻辑复杂的应用,否则都不需要搞一个接口什么的。
试问,现在80%的web应用中,有几个真的有非要接口不行的?

如同spring的依赖注入,学术价值远高于实用价值。

java本身是不错的,就是因为这些劳什子不实用的玩意,被搞的一团糟。


我感觉要是有家公司要了你真是他们的悲哀!
3 请登录后投票
   发表时间:2008-10-07  
整个j2ee系统就是构架在一大堆的interface之上,可以说没有interface就没有java的今天。
lz号称是搞过web开发,你知道你写一个jsp会被编译成什么类?jsp的interface是什么?你可以不知道,但不代表它们没有用。
1 请登录后投票
   发表时间:2008-10-07  
必要的时候用接口,而不用非得每个类都得要接口吧.
如果是这样那就是滥用.有很多人说接口方便重构,移植.
设计好的系统,无接口照样可以方便重构和移植,设计
不好的系统全是接口也照样让人头痛.再说了,要重构和要移植
的位置,设计的时候应该都是知道了,没必要全都重构吧...

接口只是设计的一种手段而已,而不是必需,如果一个HelloWorld也要写个接口的话,那就太臃肿了.现在的很多开发者,开口就是SSH,就是模式,可是真的带来方便了吗?
0 请登录后投票
   发表时间:2008-10-07  
这种帖子怎么会成为热点~~~
3 请登录后投票
   发表时间:2008-10-07  
axeon 写道
嘿嘿,各位息怒。

我搞java开发的时候,你们还不知道在哪里呢?

业务逻辑的复杂是一回事儿,技术实现的复杂是另外一回事儿。
如果业务本来就足够复杂了,再加上复杂的技术实现,等于复杂*复杂,会做的更好?

再说了,一个接口会包含多个实现么?我想大部分时候一个接口都只有一个实现类吧?
复杂业务逻辑就必须搞个接口,证明自己?

为什么你们听到我的话会跳起来?
从心理上说,你们实在无法接受把复杂问题简单化处理,这样做技术太没面子了!都不好意思跟人打招呼,只是你们的思维惯势。
从技术上说,你们也就搞过java,技术的积淀浅薄。就连spring的这些好处,也都是别人吹给你听的!你们根本就不能真正明白spring为什么这么做,利弊都在哪里。你们跳不出java的圈子,所以根本就不能真正理解java。

知道么?
心理素质差+技术水平次,就是你们做出如此反应的根本原因。

实在抱歉啊!

话说得太过激了,偶收回
1 请登录后投票
   发表时间:2008-10-07  
其实我也想了解下spring带来的真正的好处。
比如我IUserDAO dao=new UserDAO();
用spring 就是IUserDAO dao=beanFactory.getBean("userDAO");

假如以后我想把IUserDAO换成另外一种实现
IUserDAO dao=new UserDAO2();
对应spring: IUserDAO dao=beanFactory.getBean("userDAO2");

也许有人会说,我直接在spring的配置文件中将ID为userDAO的类的type改为UserDAO2就可以了,程序不用改动。但这又有什么太重大的优点呢?我用IDE的refactor一样可以马上将new UserDAO()换成new UserDAO2();

请问好处是什么?谁能告诉我?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics