I have a SearchRequest object that can be created using a SearchRequestBuilder. Some of our predefined SearchRequestBuilder can be quite complex. I have seen factory patterns used to create different types of the same parent object, but I was wondering if this is proper design to have something like this:
public class SearchRequestBuilderFactory {
public enum Type {
SEARCH, MATCH
}
public SearchRequestBuilder createBuilder(Type type) {
switch (type) {
case SEARCH:
return createSearchBuilder();
break;
case MATCHING:
return createMatchBuilder();
break;
}
}
private SearchRequestBuilder createSearchBuilder() {
SearchRequestBuilder srb = new SearchRequestBuilder();
srb.addField("*");
srb.addFilter("searchFilter");
return srb;
}
private SearchRequestBuilder createMatchBuilder() {
SearchRequestBuilder srb = new SearchRequestBuilder();
srb.addFilter("matchFilter");
srb.addThreshold(0.5);
return srb;
}
}
Aucun commentaire:
Enregistrer un commentaire