想知道将依赖注入与工厂模式混合是否合适?我会在运行时创建不同类型的对象并使用它们在DI很好的情况下注入东西所以可以在工厂构造中注入这样的传递连接字符串或什么?
感谢。
答案 0 :(得分:5)
实际上很常见。如果您需要某个类的实例,您将注入工厂而不是特定对象。您应该使用容器来构造这些对象(如果它需要构造其他对象),保留在模式中并且不创建依赖项。
答案 1 :(得分:1)
绝对!您甚至可以将对象注入工厂!
public class UserFactory
private final UserStore userStore;
@Inject
UserFactory(UserStore userStore) {
this.userStore;
}
// etc
}
public class CreateUserAction implements Action {
private final UserFactory userFactory;
@Inject
CreateUserAction(UserFactory userFactory) {
this.userFactory = userFactory;
}
@Override
void performAction() {
User user = userFactory.newUser().withRandomId().persisted().build();
}
}