Пару раз встречал пример реализации паттерна Фабрика.
В обоих случаях код был примерно такой:
public class SomethingFactory {
public Something create(String type) {
if (type.equals("type1")) {
return new Something_1Sub();
} else if ("type2") {
}
// else etc.
}
}
Почему в этих примерах
type имеет тип String ?
Не лучше ли будет создать перечисление типа
SomethingType ?
Тогда можно будет в
create использовать оператор
switch (до Java 1.7 со строками его использовать нельзя). И к тому же IDE будет выдавать подсказку о существующих значениях этого перечисления.
Или есть какие-то преимущества от использования String ?