我不久前才开始学习Java。
我遇到过Interfaces
我知道如何使用它,但仍然不太了解它的想法。
据我了解,interfaces
通常是由类实现的,然后必须实现在接口中声明的方法。
问题是-真正的意义是什么?仅将接口中的方法实现为普通的类方法会更容易吗?使用接口的确切优势是什么?
希望有人可以简化它!:)
预先感谢!
接口允许您在运行时提供不同的实现,注入依赖项,单独的关注点,使用不同的实现进行测试。
只需将接口视为类保证实现的契约即可。实现该接口的具体类无关紧要。不知道这是否有帮助。
想出一些代码可能会有所帮助。这并不能解释界面的所有内容,请继续阅读,但我希望这可以帮助您入门。这里的重点是您可以更改实现…
package stack.overflow.example;
public interface IExampleService {
void callExpensiveService();
}
public class TestService implements IExampleService {
@Override
public void callExpensiveService() {
// This is a mock service, we run this as many
// times as we like for free to test our software
}
}
public class ExpensiveService implements IExampleService {
@Override
public void callExpensiveService() {
// This performs some really expensive service,
// Ideally this will only happen in the field
// We'd rather test as much of our software for
// free if possible.
}
}
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// In a test program I might write
IExampleService testService = new TestService();
testService.callExpensiveService();
// Alternatively, in a real program I might write
IExampleService testService = new ExpensiveService();
testService.callExpensiveService();
// The difference above, is that we can vary the concrete
// class which is instantiated. In reality we can use a
// service locator, or use dependency injection to determine
// at runtime which class to implement.
// So in the above example my testing can be done for free, but
// real world users would still be charged. Point is that the interface
// provides a contract that we know will always be fulfilled, regardless
// of the implementation.
}
}
问题内容: 我正在研究Swing程序中文本组件的结构。 据我了解,本质上分为视图和模型。该模型是实现的类的实例,该类包含所有文本并提供操作文本的方法,而View则以可视方式呈现文本。 但是我不知道使用an的确切位置,方式和原因。我不确定是否封装(“拥有”)模型(),或者文档是否封装了模型。而且不确定所有这些视图在哪里适合。 有两个问题: 1- 请描述视图之间的关系和在。什么封装了什么,什么与什么相
问题内容: 今天,我浏览了该站点上的一些问题,发现提到了 以单例模式使用的这种解决方案声称具有线程安全性的优点。 我从未使用过,并且使用Java编程已经有两年多了。显然,他们改变了很多。现在,他们甚至在自己内部提供了对OOP的全面支持。 现在为什么要在日常编程中使用枚举?为什么? 问题答案: 当变量(尤其是方法参数)只能从一小部分可能的值中取出一个时,应始终使用枚举。例如类型常量(合同状态:“永久
问题内容: 与这个问题相对应:Java中的接口是什么? 问题答案: 接口是抽象类的一种特殊形式,它不实现任何方法。在Java中,你可以这样创建一个接口: 由于该接口无法实现任何方法,因此这意味着整个事物(包括所有方法)都是公共的和抽象的(Java术语中的抽象含义是“未由此类实现”)。因此,上面的接口与下面的接口相同: 要使用此接口,你只需要实现该接口。许多类可以实现一个接口,而一个类可以实现许多接
问题内容: 并且它的jQuery特定表弟一直以Javascript代码弹出。 这些构造如何工作,它们可以解决什么问题? 实例赞赏 问题答案: 随着JavaScript框架的日益普及,该标志已在许多不同的场合使用。因此,为减轻可能的冲突,可以使用以下构造: 具体来说,这是一个 匿名 函数声明,该声明 立即 通过将主要jQuery对象作为参数来执行。在该函数内部,您可以用来引用该对象,而不必担心其他框
问题内容: 我正在学习Java,只是发现接口可以包含公共静态字段和最终字段。到目前为止,我还没有看到这些示例。这些接口常量有哪些用例,我可以在Java标准库中看到吗? 问题答案: 将静态成员放入接口(并实现该接口)是一种不好的做法,甚至还有一个名称,即Constant Interface Antipattern,请参见Effective Java,第17项: 恒定接口模式是对接口的不良使用。类内部
本文向大家介绍什么是数组,它的作用是什么?,包括了什么是数组,它的作用是什么?的使用技巧和注意事项,需要的朋友参考一下 数组是一个数据容器,其中包含固定长度的同类数据类型的元素。它用于存储相同数据类型的元素。 示例 输出结果