我知道在 Spring 我们都为接口(interface)编写代码。所以这个实现类根本不应该被外界知道。但它是一个公共(public)类,所以任何人也可以创建一个实现类的实例。你如何防止这种情况?您是否将构造函数设为私有(private)?既然spring创建了一个through reflection的实例,那应该没问题。有人考虑过吗?我知道如果您创建实现类的实例,它将无法正常工作,因为依赖项都是 null
,但这不是重点。
最佳答案
Spring 依赖注入(inject)的目的不仅仅是隐藏实现类。
重点是您不必担心使用哪个实现类。我们把提供类的责任交给了Spring的容器。
依赖注入(inject)的基本思想是有一个单独的对象,一个汇编器,它使用查找器接口(interface)的适当实现填充列表器类中的一个字段。
参见Martin Fowler。更多。
关于java - 考虑 Spring 中的接口(interface)代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2323997/