gpt4 book ai didi

java - Spring 为什么使用接口(interface)而不是抽象类?

转载 作者:行者123 更新时间:2023-11-30 01:48:09 32 4
gpt4 key购买 nike

有时,我们以某种自动方式使用 Spring。今天我在思考和搜索以下内容。

为什么我们在 Spring 中这样做?@AutowiredI动物动物;

为什么我们通常不做这样的事情?@Autowired动物动物;

Animal 是一个抽象类,在我们的 beans.xml 中,或者使用 @Autowired 和 Qualifier,我们可以指定我们想要的实现。狗,猫等。

我知道我错了,但我想要一些关于抽象类方法而不是接口(interface)方法的缺点的解释。

现在,如果我们想注入(inject)一些 ORM 实现,Ibatis 或 Hibernate,使用接口(interface)注入(inject)更有意义,因为两个提供者不共享抽象类,但它们共享相同的接口(interface)。但是还有其他例子吗?

提前致谢!

最佳答案

在早期的 Spring 版本中,声明接口(interface)可能是强制性的,以使 bean 能够使用一些需要通过接口(interface)生成代理类的功能。
最近的 Spring 版本不再有此限制。因此,现在,在 Spring 中(与没有 Spring 一样),一个共同的良好实践是仅在有意义的情况下才让 bean 类实现接口(interface):KISS(保持简单和愚蠢)原则。
抽象是有成本的,我们只有出于充分的理由才愿意接受它。

关于java - Spring 为什么使用接口(interface)而不是抽象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57166238/

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