2016-11-18 151 views
0

从Java 8开始,接口可能有静态方法。所以我的问题是,在接口中有一个静态工厂方法是否有意义,这会使实际的实现变得不稳定。Java 8接口 - 静态工厂方法

除接口对其实现具有依赖性这一事实外,我看不到其他缺点。当然,在一个接口有很多实现的情况下,我也不会考虑这样做。

您对此有何评论?

+0

你将如何界面知道接口的未来可能的实现是什么? – bradimus

+0

“在接口有很多实现的情况下,我也不会考虑这样做”.......那么为什么你需要接口呢? – developer

回答

1

除了接口与其实现相关的事实,我看不到其他缺点。当然在 的情况下,一个接口有许多实现,我也 不会考虑这样做。

“编码到接口”的整个概念是将接口与实现类分离,以便它能够灵活地在运行时注入/传递不同的对象并获得动态行为。因此,简而言之,如果你使用实现(即使它是单一实现)对接口进行硬编码,那么你的代码就会紧密耦合在一起,并且你正在打破open closed principle(类应该是灵活/开放的用于扩展,关闭用于修改),这是不推荐的。