当前位置: 技术问答>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就可以变化而不受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介入。
那么,使用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.
这样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.
pattern本身并不能回答你的问题,但是它可以帮你理解的更深刻。
regards
T.
|
没有很好地理解你的话,先在这里解释我对接口的认识:
接口也可以理解为协议。实现了接口,也就向其他类声明它支持这个协议,任何类可以按照这个协议和它交流。至于它如何实现协议,就是和接口无关。打个比方,一个人,它既是领导又是他领导的下级,它有两个接口1.对上级2.对下级。另一个人只有上级没有下级,他只实现上级接口。还有的人,比较正直,有上级,但不会拍马屁功能,也没有实现上级接口。这就是接口比继承灵活的地方,就象role assigned to a class.
另外,使用接口可以使classes hierarchy趋于扁平。但是如果classes体系非常之复杂,class 继承可能更适应。
接口也可以理解为协议。实现了接口,也就向其他类声明它支持这个协议,任何类可以按照这个协议和它交流。至于它如何实现协议,就是和接口无关。打个比方,一个人,它既是领导又是他领导的下级,它有两个接口1.对上级2.对下级。另一个人只有上级没有下级,他只实现上级接口。还有的人,比较正直,有上级,但不会拍马屁功能,也没有实现上级接口。这就是接口比继承灵活的地方,就象role assigned to a class.
另外,使用接口可以使classes hierarchy趋于扁平。但是如果classes体系非常之复杂,class 继承可能更适应。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。