当我尝试编码工厂模式时,我遇到类型不匹配的编译器错误。接下来是涉及的代码。
首先,我有一个通用接口Validator.java
与我的任何BusinessEntities一起使用(它们都实现了BusinessEntity.java
接口):
public interface Validator<T extends BusinessEntity> {
boolean validate(T entity);
}
第二,我对实现User.java
的名为UserValidator.java
的{{1}}实体有一个具体的验证器。
Validator.java
最后,我有一个工厂public class UserValidator implements Validator<User> {
@Override
public boolean validate(User entity) {
//logic to return a boolean value
}
}
,能够使用类或其他条件返回验证器。
ValidatorFactory.java
错误是:public class ValidatorFactory<T extends Validator<? extends BusinessEntity>> {
private ValidatorFactory() {
super();
}
//Simplified method
public T getValidator() {
return new UserValidator(); //this lines raises the error
}
}
我在做什么错?在这种情况下,制作工厂模式的最佳策略是什么?
**编辑**
实际上这是重复的,但另一个问题不能回答我的第二点。在这种情况下,制作工厂模式的最佳策略是什么?