【发布时间】:2012-01-10 13:22:06
【问题描述】:
在我正在处理的项目代码中,我遇到了一种奇怪的方法。
UI 层使用一种 Service Locator 获取依赖项,该服务定位器是一个具有静态方法的类:
public class ServiceManager {
public static MailService getMailService() {
...
}
public static UserInfoService getUserInfoService() {
...
}
...
}
这个类“分发”的依赖是使用 Spring 框架注入到它的。
采用这种方法的原因可能是什么?我只能看到缺点。由于定位器方法是静态的,因此没有接口。没有接口使得推理类的目的变得更加困难。这个类的客户端与它紧密耦合(记住,那里没有接口),使得它们无法在其他地方重用。
让Spring直接在UI类中注入依赖不是更好吗?
【问题讨论】:
标签: dependency-injection dependencies