Non riesco a decidere come chiamare la mia classe. Finora l'ho etichettato come una fabbrica, ma non ne sono sicuro.
Ecco la classe. Come puoi vedere, esiste per restituire un tipo concreto di un'interfaccia ( ResolveRegistrationIssue
) basata sull'argomento fornito al metodo getter ( ResolutionFamilyEnum
):
@SuppressWarnings("serial")
@ManagedBean(name = "resolveIssuesFactory")
@ViewScoped
public class ResolveIssuesFactory implements Serializable {
@ManagedProperty(value = "#{resolvePrimaryIssuesFactory}")
private ResolvePrimaryIssuesBean resolvePrimaryIssuesBean;
@ManagedProperty(value = "#{resolveSecondaryIssuesBean }")
private ResolveSecondaryIssuesBean resolveSecondaryIssuesBean ;
@ManagedProperty(value = "#{resolveTertaryIssuesBean }")
private ResolveTertaryIssuesBean resolveTertaryIssuesBean ;
public ResolveRegistrationIssue getResolutionBean(
ResolutionFamilyEnum familyEnum) {
//null safety
if(null ==familyEnum) {
throw new IllegalArgumentException("The family which determines the Resolution Bean to be used may not be null.");
}
if (familyEnum.equals(ResolutionFamilyEnum .PRIMARY)) {
return resolvePrimaryIssuesBean;
} else if (familyEnum.equals(ResolutionFamilyEnum .SECONDARY)) {
return resolveSecondaryIssuesBean;
} else if (familyEnum.equals(ResolutionFamilyEnum .TERTERY)) {
return resolveTertaryIssuesBean;
} else {
throw new IllegalArgumentException("Could not determine the correct Resolution Issue bean for the provided family.");
}
}
Ora capisco che una classe Factory accetta argomenti che definiscono l'entità sviluppata e quindi consegnata (restituita).
Tuttavia nel mio caso, le mie entità sono già sviluppate, in quanto sono riferimenti EJB. Quindi questo metodo li consegna solo.
Quindi questa è ancora una fabbrica?