Что такое хорошее название класса, который создает фабрики? (FooFactoryFactory звучит как глупый imo),

Я не помню, точно это общий шаблон, но у меня есть класс (Шаблон "фабричный метод"), который имеет метод для создания других классов (Шаблон "абстрактная фабрика") в зависимости от перечислимого параметра:

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 (общий Шаблон "абстрактная фабрика").

Так, как переименовать FooFactoryFactory?

Возможно, FooFactoryCreator? (Думайте об этом имени во время записи этого вопроса). По моему скромному мнению, хорошо, как Вы думаете?

18
задан Roman 2 February 2010 в 19:13
поделиться

2 ответа

  • FooFactoryCreator
  • FooFactoryProvider

Но вы можете захотеть переименовать свои фабрики, скажем, в конструкторы. Взгляните на javax.xml.parsers.DocumentBuilderFactory , который производит экземпляры DocumentBuilder , которые, в свою очередь, создают Document s

Просмотр DocumentBuilderFactory пример, возникает другой вариант:

  • иметь абстрактную FooFactory
  • сделать там static newInstance () метод (с параметрами)
  • let newInstance ( ) вернуть соответствующую реализацию FooFactory
17
ответ дан 30 November 2019 в 08:52
поделиться

в Создание и уничтожение объектов Java: часть 1 , автор предлагает: «Одним преимуществом статических фабричных методов». Это, в отличие от конструкторов, у них есть имена ». - Джошуа Блох . Вы можете получить некоторые идеи из статьи.

4
ответ дан 30 November 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: