怀疑接口的实现

时间:2010-10-21 16:09:10

标签: class interface class-design oop

首先,这只是一个面向对象的编程问题,并不特别适用于任何语言。

这对我来说非常尴尬。这件事发生在我的工作中,我太害羞了,无法向同事澄清这一点,因为这表明我对面向对象编程的理解不足。所以这是事件:

有一个实现接口I的类A.该接口有一个方法M.A类定义了该方法的主体或更确切的实现。 现在我有一个工具,我可以找到其他类或程序使用的,或者换句话说,调用A类 - >方法M.当我使用这个工具时,它没有返回任何结果;我没有上课的指示就是调用方法M.

当我与一位资深同事分享我的观察时,他只是去了界面I - >方法M,并使用此工具。它返回了不少结果。他告诉我,这些是调用方法M并要求我继续进行的类或方法。

这个结果显然是实现接口I的那些类的列表。 但我不明白的是,这是如何调用A类的一组类或方法 - >方法M.由于我自信地告诉我的同事,在他向我展示结果列表之后没有课程调用方法M,我太尴尬地问他,我正在寻找的结果是什么。

知道我的同事暗示的是什么吗?

此致 大额牛

3 个答案:

答案 0 :(得分:6)

为类提供接口背后的整个想法是,接口将用于传递实例。这是为了提供松耦合。 现在,既然你没有实际传递类,而是特定于该类的接口, 例如:

void someMethod (ISomeClass intobject)

而不是

void someMethod (SomeClass obj)

所以,当您尝试在ISomeClass / SomeClass中调用名为myMethod的{​​{1}}内的方法时,实际上是

someMethod

因此, intobject.myMethod() 的所有用法都会返回myMethod,而不是ISomeClass

编辑:也许它只是我,但我始终相信,当你不理解某些事情时,最好张嘴问一个问题而被误认为是傻瓜而不是让它关闭并证明自己是一个人!

答案 1 :(得分:5)

我想你应该问你的家伙发生了什么事。你不应该害怕承认你不知道;如果从中吸取教训,不知道是没有错的。如果我能够进入下一步并学习一些东西,我一直都是错的,并且不会感到尴尬。

我认为您所看到的是没有使用A类 - > M,但是我还有其他使用M的实现。该工具找到了其他实现使用M的地方。

答案 2 :(得分:1)

  

当我使用这个工具时,它没有返回任何结果;我没有上课的指示就是调用方法M.

没有结果意味着什么?

  

但我不明白的是,这是如何调用A类的一组类或方法 - >方法M.

这真的是结果意味着什么?

这个工具如何运作?结果意味着什么?不确定这是你不理解的OOP,还是只是这个神奇的工具?