从软件设计的角度使用界面[重复]

问题描述 投票:0回答:4

可能重复:
Java的使用【接口/抽象类】

这个问题只是关于接口

我知道如何使用接口以及什么是接口。但我想知道从设计的角度来看,接口实际上如何提供帮助。 任何人都可以给我解释一下接口用途。 你可以举出任何例子。

java interface
4个回答
0
投票

从设计最佳实践的角度来看,接口编程以及依赖注入(使用 Spring 或通过构造函数/setter 等自动化)的一大优点是它减少了代码中的耦合。这意味着每个单独的类都更加独立,并且对底层细节的更改不太可能泄漏到其他类中。

如果您的应用程序具有强耦合性,则会导致所做的更改在整个代码中产生连锁反应。

本质上,如果您对接口进行编程,您应该能够对实现进行底层更改,而不会在其他类中产生连锁效应。

“编程接口”的最佳实践概念在 Gang of Four Design Pattenr 书中提出 http://en.wikipedia.org/wiki/Design_Patterns

另外,请查看以下 pdf 的第 17 页:http://userpages.umbc.edu/~tarr/dp/lectures/OOPrinciples-2pp.pdf

它提供了一些优点,然后是代码示例。


0
投票

接口和抽象类都可以帮助您针对接口进行编程,而不是针对具体的实现。

这意味着您可以更有效地使用 OOP 原则。 我建议你阅读

Head First Object Oriented Design and Analysis

这本书对我帮助很大。


0
投票

来自 SCJP 6 书:

当您创建接口时,您正在为类可以执行的操作定义契约,而无需说明该类将如何执行此操作。接口就是契约。

例如,当您有一个Interface Movable时,您可以定义必须由接口的实现来实现的方法,例如:drive()或setMovingSpeed()。该接口没有提及如何驾驶,只是说它在那里并且应该由接口的子类声明(例如BikeCar..)..


0
投票

您可以通过接口(抽象)实现良好软件设计的一些有价值的原则,例如开放/关闭原则、关闭修改但开放扩展、或使用组合而不是继承等原则/规则。您可以利用多态性的好处使用接口(抽象),在运行时动态更改程序行为,如策略模式中所述。您可以在软件工程书籍中找到更多内容,我认为不可能在一个线程中讨论所有这些内容。搜索设计模式、面向对象编程、计算机科学文档中的抽象。

© www.soinside.com 2019 - 2024. All rights reserved.