Я не помню точно, что это общий шаблон, но у меня есть класс (Factory шаблон метода), который имеет метод для создания других классов (абстрактный шаблон Factory) в зависимости от параметра перечисления:
public class FooFactoryFactory {
public FooFactory createFactory (FooFactoryType type) {
switch (type) {
case AFoo:
return new AFooFactory ();
break;
case BFoo:
return new BFooFactory ();
break;
default:
throw new RuntimeException ("...");
}
}
}
public interface FooFactory {
Foo createFoo ();
FooItem createFooItem ();
}
FooFactory имеет несколько реализаций, а также интерфейс Foo и интерфейс FooItem (общий абстрактный шаблон Factory).
Итак, как переименовать FooFactoryFactory?
Может быть, FooFactoryCreator? (Подумайте об этом имени во время написания этого вопроса). ИМХО, это хорошо, как вы думаете?