0

为清楚起见,请考虑以下设计 -

Interface MyIface{
 myInterfaceContract(someObject);
};

Class Child1 implements MyIface{
   myInterfaceContract(someObject){ //implemented }
   myChild1Action(){ //implemented }
}

Class Child2 implements MyIface{
   myInterfaceContract(someObject){ //implemented }
   myChild2Action(){ //implemented }
}

我知道如何通过spring注解实现接口注入。疑问是 - 如果完成基于接口的注入,那么我如何访问在我的子类中直接实现的方法,即 myChild1Action()/myChild2Action()

我做错了还是想错了?

4

1 回答 1

1

我会说你的想法很混乱。如果您基于接口进行注入,那么这意味着该接口为您提供了您需要的所有功能。如果您需要实现中的方法,那么该接口并没有为您提供所需的东西,而注入具体的实现是您需要做的。

大多数时候,如果您使用 instanceof 来查找您拥有的类以便您可以调用一些额外的方法,那么这表明您的设计已被破坏。

您可能会发现定义“Finder”接口并让 Child1 实现该接口并将 bean 注入 Finder 字段和 MyIFace 字段会很有帮助。

于 2013-10-18T11:15:36.703 回答