Я точно не помню, является ли это обычным шаблоном, но у меня есть класс (шаблон Factory Method), в котором есть метод для создания других классов (шаблон Abstract Factory) в зависимости от параметра enum:
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 (общий шаблон Abstract Factory).
Итак, как переименовать FooFactoryFactory?
Может быть, FooFactoryCreator?(Думайте об этом имени во время написания этого вопроса).ИМХО это приятно, как ты думаешь?