Реалистичный вариант использования статического фабричного метода?

Я знаком с идеей и преимуществами статического фабричного метода, как описано в книге Джошуа Блоха Эффективная Java :

  • Фабричные методы имеют имена, поэтому у вас может быть несколько фабричных методов с одной и той же сигнатурой, в отличие от конструкторов.
  • Фабричные методы не должны создавать новый объект; они могут вернуть ранее созданный объект. Это хорошо для неизменяемых объектов или объектов-значений.
  • Фабричные методы могут возвращать объект любого подтипа своего возвращаемого типа, в отличие от конструкторов.

Теперь я пытаюсь объяснить статические фабричные методы для тех, кто изучает Java и принципы объектно-ориентированного программирования. Лучше всего она учится на конкретных сценариях, а не на абстракциях. Если она сможет увидеть образец в действии, решая какую-то проблему, она ее поймет. Но ей труднее читать абстрактный список характеристик, подобных приведенным выше, чтобы понять, как применять шаблон.

Не могли бы вы помочь мне придумать реалистичный пример использования статического фабричного метода, который проясняет его преимущества, но что по-прежнему достаточно просто, чтобы показать кому-нибудь во вводном классе Java?

У этого человека действительно есть опыт программирования на PL / SQL, но он так и не успел изучить шаблоны ООП.

13
задан mgv 16 November 2010 в 16:27
поделиться