gpt4 book ai didi

java - 为什么要转换为接口(interface)而不是转换为 java 类?

转载 作者:行者123 更新时间:2023-12-02 00:13:01 25 4
gpt4 key购买 nike

我遇到过 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com