当前位置:  技术问答>java相关

找人聊聊---java的接口技术。

    来源: 互联网  发布时间:2015-08-31

    本文导语:  如果两给类是紧耦合的(就是这两个类互相调用,不可分割),如果想让他们两个变成松耦合,可以让他们分别实现一个接口,。。。。。 可我不理解的是这个接口到底起了什么作用。两个类分别实现了借口和,他的方...

如果两给类是紧耦合的(就是这两个类互相调用,不可分割),如果想让他们两个变成松耦合,可以让他们分别实现一个接口,。。。。。
可我不理解的是这个接口到底起了什么作用。两个类分别实现了借口和,他的方法。那岂不是只是告诉类该干什么,却让他自己实现,多麻烦呀。
在说,这两个类是如何联系起来的?

|
如果你定义了两个接口,然后分别定义了实现这两个接口的类,和直接定义两个类有什么不同呢?
不知道你说“就是这两个类互相调用,不可分割”是什么意思,不如你说详细点,或许我能给你一个思路。

|
to qxjavajava(射手座):

这样A就可以变化而不受B的影响;同时B也可能因为C的不同实现而具有多态性。

如果以B为核心对象,可参考Bridge Pattern关于角色转变的描述。

如果以C为核心接口,可参考Adapter Pattern的Class level pattern的描述。

如果把B看成工厂,可以参考Factory/Abstract Factory Pattern。

如果把w()换作update(B b),可以参考Observer Pattern。

另:最后三种是面向对象里interface的三种经典运用——adapter, factory, message。

注:这些模式都是最基本的设计模式,在GoF的Design Pattern中有记载。

regards

T.

|
假设A有n种特性,每一种特性由一个接口来描述。再假设外部程序调用A每一种特性的次数一样。
那么,使用n个接口对使用一个接口(类引用)把对外部程序变动降到1/n。
当然,这是最理想的情况下(有完美的接口设计)。
如果只有两个class,没有必要使用接口,但是谁也不能保证将来不需要其他class介入。

|
主要是你没有真正理解多态的意义,在编码中,她可以使多种对象公用代码。很简单的一个例子,我们编写一个弹奏乐器的程序,我们首先得实现该接口的play方法,而每一种乐器的编写者可以使不同的人,而我们在调用时可以不管他的各种实现,只要调用play这个接口方法,这样我们的系统便可以无限的扩充,如果出现了bug,我们只需要替换该部分的接口实现,其他的部分不需要改动。同样,如果我们需要扩充功能,则我们可以添加接口,然后在去做他的实现,原来的代码我们完全不需要改变。
    在我的感觉里接口并不能实现多少的代码重用,代码的重用主要体现在类的继承和组合上,跟借口并没有太多关系。
    一家之言而已

|
看《设计模式》,讨论的就是这些问题,主要是考虑以后程序修改起来方便的了

|
gz

|
gz

|
to qxjavajava(射手座):

这样A就可以变化而不受B的影响;同时B也可能因为C的不同实现而具有多态性。

如果以B为核心对象,可参考Bridge Pattern关于角色转变的描述。

如果以C为核心接口,可参考Adapter Pattern的Class level pattern的描述。

如果把B看成工厂,可以参考Factory/Abstract Factory Pattern。

如果把w()换作update(B b),可以参考Observer Pattern。

另:最后三种是面向对象里interface的三种经典运用——adapter, factory, message。

注:这些模式都是最基本的设计模式,在GoF的Design Pattern中有记载。

regards

T.

|
to qxjavajava(射手座):

pattern本身并不能回答你的问题,但是它可以帮你理解的更深刻。

regards

T.

|
没有很好地理解你的话,先在这里解释我对接口的认识:

接口也可以理解为协议。实现了接口,也就向其他类声明它支持这个协议,任何类可以按照这个协议和它交流。至于它如何实现协议,就是和接口无关。打个比方,一个人,它既是领导又是他领导的下级,它有两个接口1.对上级2.对下级。另一个人只有上级没有下级,他只实现上级接口。还有的人,比较正直,有上级,但不会拍马屁功能,也没有实现上级接口。这就是接口比继承灵活的地方,就象role assigned to a class.
另外,使用接口可以使classes hierarchy趋于扁平。但是如果classes体系非常之复杂,class 继承可能更适应。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 欢迎大家来聊聊Linux在国内的应用!
  • 请大家赏个脸,进来聊聊
  • 请各位一起近来聊聊unix下sata的hotplug
  • 请skyyoung来聊聊
  • 有人用过aix吗?近来聊聊,一起来总结一下。
  • HTML教程 iis7站长之家
  • 有一常见问题不解,请大家聊聊!
  • 长沙得csdn同聊在次聊聊,如何??
  • 在银行科技部门的兄弟近来聊聊?
  • 请看过petstore源码的同志进来聊聊
  • 呵呵,刚装了KDE3.2.2,高兴!大家来聊聊GUI
  • 大家聊聊liunx下的开发工具
  • 【随便聊聊】请问有没有考过 Java认证的朋友?高分请教一下经验?
  • 在下想申请做java小小版主,不知何等资历才够,各位可否随便聊聊
  • 【一周话题】关于linux下的图形编程,大家聊聊
  • 聊聊啊,有没有大型企业从unix向linux过渡的。。。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3