我遇到了一些在 spring 框架中使用的 java 类。首先,applicationContext.xml 中有 bean
<bean id="someBean" parent="txProxyTemplate">
<property name="target">
<bean class="path.to.bean.impl.SomeBeanImpl">
...
</bean>
...
</bean>
我有接口(interface)
ISomeBean
和它的实现 SomeBeanImpl
然后,我有另一个使用 ISomeBean 的类。public class SomeOtherClass {
...
public function doStuff() {
...
ApplicationContext ctx;
SomeBean theBean = (SomeBean) ctx.getBean;
}
}
我想知道为什么我们要转换到接口(interface)而不是转换到类。
最佳答案
为什么要将 SomeOtherClass
绑定(bind)到特定实现?使用该接口(interface),您会获得松散耦合 - 您可以针对假实现进行测试,或者稍后切换到不同的实现。
这是控制反转的很大一部分好处 - 您与依赖项的耦合不像直接在类中实例化它们那样紧密。
关于java - 为什么转换为接口(interface)而不是转换为类 java?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8093501/