免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: TAxxjszxlkjf

关于java中接口的认识(不知理解的是否正确) [复制链接]

论坛徽章:
0
发表于 2005-09-09 11:25 |显示全部楼层

关于java中接口的认识(不知理解的是否正确)

@_@! kaihuo??

so cool!!!

论坛徽章:
0
发表于 2005-09-09 11:51 |显示全部楼层

关于java中接口的认识(不知理解的是否正确)

类D中
wqkzt e=new wqkzt();
e.kaihuo(new A());
类F中
wuqi a = new A();
a.gongji();
二者的实现没什么区别了
版主
在 wqkzt 这个类的定义中不用(也不可能)关心武器的类型只是使用接口的一个优点好处我觉得并不是
接口存在和产生的本质原因

论坛徽章:
0
发表于 2005-09-09 13:46 |显示全部楼层

关于java中接口的认识(不知理解的是否正确)

解耦就是接口存在的本质原因了。楼主觉得还有什么其他的好处呢?

论坛徽章:
0
发表于 2005-09-09 16:57 |显示全部楼层

关于java中接口的认识(不知理解的是否正确)

类D中
wqkzt e=new wqkzt();
e.kaihuo(new A());
类F中
wuqi a = new A();
a.gongji();
二者实质上不就一样了吗没什么区别了

论坛徽章:
0
发表于 2005-09-09 18:57 |显示全部楼层

关于java中接口的认识(不知理解的是否正确)

楼主说的“实质上一样”的意思是什么?
原帖由 "TAxxjszxlkjf" 发表:
类D中
wqkzt e=new wqkzt();
e.kaihuo(new A());

D这段代码里有两个对象
类F中
wuqi a = new A();
a.gongji();
二者实质上不就一样了吗没什么区别了
F这段代码里只有一个对象。

怎么会实质上一样呢?

论坛徽章:
0
发表于 2005-09-10 00:21 |显示全部楼层

关于java中接口的认识(不知理解的是否正确)

我的意思 类E F D最终实现的结果是一样的,类E F中是不是就存在着耦合,如果存在,在什么地方,怎么耦合的。类D和类E F比起来是怎么去解耦的。
(我觉着类D中
wqkzt e=new wqkzt();
e.kaihuo(new A());
类F中
wuqi a = new A();
a.gongji();
二者实质上不就一样了吗没什么区别了(从耦合的角度讲))

论坛徽章:
0
发表于 2005-09-10 16:15 |显示全部楼层

关于java中接口的认识(不知理解的是否正确)

倒,原来你还在看这3个类。D,E,F都不能说明接口的作用,虽然看上去好像是使用了接口。真正体现接口好处的是wqkzt类

我再强调一下:
你是所有类的程序员,所以你看到了所有的细节。假设你只开发了wqkzt类,其他类你没有source code,你看到了什么?能看到具体的武器类型么?

论坛徽章:
0
发表于 2005-09-11 00:14 |显示全部楼层

关于java中接口的认识(不知理解的是否正确)

我问的就是这个意思3个程序最终实现的结果是一样的D.java中使用了wqkzt类,与E F比起来优越在什么地方(程序E F中是不是就存在着耦合,如果存在,在什么地方,怎么耦合的。程序D和程序E F比起来是怎么去解耦的)

论坛徽章:
0
发表于 2005-09-11 06:51 |显示全部楼层

关于java中接口的认识(不知理解的是否正确)

【1】 只有D使用了wqkzt;E,F没有。
【2】D和E, F相比没有解耦,因为E, F的问题在于E, F这两个类和其他类有强耦合,但是D同样和其他类有耦合。

我说的是如果wqzkt在E, F里有不同的实现:比如下边的实现:
F

  1. class wqzkt {
  2.     public void kaihuo(A a) {
  3.       a.gongji();
  4.     }

  5.     public void kaihuo(B b) {
  6.       b.gongji();
  7.     }

  8.     public void kaihuo(C c) {
  9.       c.gongji();
  10.     }

  11. }
复制代码

论坛徽章:
0
发表于 2005-09-11 06:57 |显示全部楼层

关于java中接口的认识(不知理解的是否正确)

这就是没有使用接口的时候wqzkt的实现。如果使用了接口,就好多了。而且可以支持包括A, B, C在内的所有实现了wuqi接口的类,而不限于这三个类。

所以我说你的那个例子不好。我的例子没有写出没有不用接口的Circus,缺少了对比的效果;你看的那个例子却基本上是误导你用一些错误的类(E, F, D)在对比……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP