相关疑难解决方法(0)

"编程到界面"是什么意思?

我已经看过几次提到这个,我不清楚这是什么意思.你何时以及为何会这样做?

我知道接口有什么作用,但事实上我不清楚这一点让我觉得我错过了正确使用它们.

如果你这样做是这样的:

IInterface classRef = new ObjectWhatever()
Run Code Online (Sandbox Code Playgroud)

你可以使用任何实现的类IInterface吗?你什么时候需要这样做?我唯一能想到的是,如果你有一个方法,你不确定除了实现之外将传递什么对象IInterface.我想不出你需要多久做一次.

另外,你怎么能写一个接受实现接口的对象的方法?那可能吗?

language-agnostic oop interface

791
推荐指数
17
解决办法
16万
查看次数

当程序员说"代码对接口而不是对象"时,他们的意思是什么?

我已经开始了很长时间的艰苦探索,学习并将TDD 应用到我的工作流程中.我认为TDD与IoC原理非常吻合.

在SO中浏览了一些TDD标记问题之后,我认为对接口而不是对象进行编程是一个好主意.

您能提供简单的代码示例,说明这是什么,以及如何在实际使用案例中应用它?简单的例子对我(以及其他想要学习的人)掌握概念至关重要.

非常感谢.

.net c# tdd inversion-of-control

78
推荐指数
3
解决办法
2万
查看次数

调用接口有什么意义?

我正在阅读这篇关于JVM如何调用方法的文章,我想我已经掌握了大部分内容.但是,我仍然无法理解需要invokeinterface.

我理解它的方式,一个类基本上有一个方法的虚拟表,当调用一个方法时,invokevirtualinvokeinterface咨询这个虚拟表.

那么,在接口上定义的方法和在基类上定义的方法之间有什么区别?为什么不同的字节码?

的指令描述看起来也非常相似.

该文章似乎声称,每次调用方法时,接口的方法表都可以具有"不同的偏移量".我不明白的是为什么接口会有一个方法表,因为没有对象可以将接口作为其实际类型.

我错过了什么?

jvm

65
推荐指数
1
解决办法
9341
查看次数

在java中使用接口或类型进行变量定义?

ArrayList aList = new ArrayList();

List aList = new ArrayList();
Run Code Online (Sandbox Code Playgroud)

这两者之间有什么区别,哪个更好用,为什么?

java

14
推荐指数
3
解决办法
3067
查看次数

标签 统计

.net ×1

c# ×1

interface ×1

inversion-of-control ×1

java ×1

jvm ×1

language-agnostic ×1

oop ×1

tdd ×1