Use of interface from Software Design Point of view
Possible Duplicate:
Use of Java [Interfaces / Abstract classes]
嗨,朋友们,
这不是关于任何新事物的问题,而是关于接口的问题。
我知道如何使用接口和什么是接口,但我想知道从设计的角度来看,接口实际上是如何帮助我们的。任何人都可以给我解释一下接口的使用。您可以为此提供任何示例。
谢谢。
您可以实现一些有价值的原则,即良好的软件设计与接口(抽象),原则/规则,如打开/关闭原则,关闭可修改但开放可扩展,或者使用组合而不是继承等。您可以使用多态性与接口(抽象)的好处,动态地改变程序行为。t运行时,如策略模式中所述。你可以在软件工程书籍中找到更多的东西,我认为不可能在一个线程中讨论所有这些。在计算机科学文档中搜索设计模式、面向对象编程、抽象。
从设计最佳实践的角度来看,编程到接口以及依赖注入(自动使用Spring或通过构造函数/设置器)的一大优点是它减少了代码中的耦合。这意味着每个单独的类都更加独立,对不可忽略细节的更改不太可能泄漏到其他类中。
如果您有一个具有强耦合的应用程序,它会导致所做的更改,从而在整个代码中产生连锁反应。
本质上,如果您编程到一个接口,那么您应该能够对实现进行底层更改,而不会在其他类中产生连锁反应。
"程序到接口"的最佳实践概念在《四人帮设计模式》一书中提出:http://en.wikipedia.org/wiki/design_patterns
另外,请查看以下PDF文件的第17页:http://userpages.umbc.edu/~tarr/dp/schooses/ooprinciples-2pp.pdf
它提供了一些优势,然后是一个代码示例。
从SCJP 6书中:
When you create an interface you're defining a contract for what a class can do, without saying anything about how the class will do it. An interface is a contract.
例如,当您有一个接口可移动时,您可以定义必须通过接口实现实现的方法,例如:drive()或setmovingspeed()。接口没有说明如何驾驶,只说明它在那里,应该由接口的子类(如bike或car)声明。
接口和抽象类都帮助您编程到接口,而不是具体的实现。
这意味着您可以更有效地使用OOP原则。我建议你读
这本书对我帮助很大。