免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
发表于 2006-01-01 17:40 |显示全部楼层
java中的接口产生的最根本的原因和最根本的作用在于描述类与类之间的联系,当类与类之间的联系用类的继承来描述并不恰当时,就用接口来描述。接口概念的引入是为了更恰当地描述事物,它的产生和耦合没有直接的关系--------一个初学者的想法,清高手指点。

论坛徽章:
0
发表于 2006-06-05 15:31 |显示全部楼层
你要实现
A a = Factory.Create(A); C c = Factory.Create(C).

hoho
这个就是松耦合

论坛徽章:
0
发表于 2006-06-05 17:19 |显示全部楼层
呵呵,肯定是书没看好,继续...

论坛徽章:
0
发表于 2006-06-14 13:51 |显示全部楼层
耦合我不懂!但代码好象应该下面这样哦!
public class A {

method1(){} ;
method2(){} ;
method3(){};
method4(){} ;
}

class C  {
method1() {
// an entirely different implementation
}
}


public class B  {

A a=new A();
a.method1();

}

其次interface是两个类之间的桥梁,一个类去实现它,另一个类去调用它,我不知道和偶合有什么关系!

论坛徽章:
0
发表于 2006-06-15 01:46 |显示全部楼层
原帖由 追梦南风 于 2006-6-14 13:51 发表
耦合我不懂!但代码好象应该下面这样哦!
public class B  {

A a=new A();
a.method1();

}

interface的好处主要是减少代码量,甚至于减少程序编译的次数。特别是用在分布式应用的时候。

A a=new A();
a.method1();

B b =new B();
b.method1();
....

如果你有1000个这样的class,是不是要把类似这样的代码写1000遍呢?另外,如果你的程序已经在运行,但是又要加入新的class,你是不是需要把程序终止运行,重新修改代码,重新编译,部署,然后重新启动呢?

interface就是解决这种问题的一个办法。你可以让这些类似功能的class共用一个入口。

public interface Wuqi {//武器
    public void fashe(); //发射
}

public class Shouliudan implemnets wuqi
{
   public void fashe() {
      touzhi();//手榴弹用投掷的
   }

   private void touzhi() {
      ...
   }
}

public class Zhadan implements wuqi
{
   public void fashe() {
       yinbao(); //炸弹用引爆的
   }

   private void yinbao() {
       ...
   }
}

然后统统存入武器库
Shouliudan s = new Shouliudan();
wuqiku.add(s);

Zhadan z = new Zhadan();
wuqiku.add(z);

使用的时候
while(wuqiku.hasNext())
{
    Wuqi wq= (Wuqi)wuqiku.next(); //从武器库中取得一样武器
    wq.fashe(); 这里不要再去关心是什么类型的武器,不用担心应该用投掷的,还是引爆的,只要使用统一的方法“发射”即可。
}

而且,以后不管再研发出什么新的武器,使用什么新的名称都无所谓,调用的部分的代码就无需重新编译,就能直接使用新的武器了。
如果你有运行和维护rmi的服务器的经验,就能体会到用interface的好处了。

论坛徽章:
0
发表于 2006-06-23 16:47 |显示全部楼层
原帖由 sakulagi 于 2005-9-11 20:17 发表

解耦”意味着“用接口代替类”,而不是接口和类同时用 ...



一语惊醒梦中人
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP