Я знаком с идеей и преимуществами статического метода factory, как описано в Joshua Bloch Эффективная Java:
- Factory методы имеют имена, поэтому вы можете иметь более одного метода factory с той же сигнатурой, в отличие от конструкторов.
- Factory методам не нужно создавать новый объект; они могут вернуть ранее созданный объект. Это полезно для неизменяемых объектов или объектов значений.
- Factory методы могут возвращать объект любого подтипа возвращаемого типа, в отличие от конструкторов.
Теперь я пытаюсь объяснить статические методы factory для тех, кто изучает принципы Java и OO. Она лучше учится на конкретных сценариях вместо абстракций. Если она увидит образец на работе, решая какую-то проблему, она это получит. Но ей сложнее прочитать абстрактный список характеристик, подобных приведенному выше, чтобы понять, как применять шаблон.
Можете ли вы помочь мне придумать реалистичный пример использования статического метода factory, который делает его преимущества понятными, но который еще достаточно прост, чтобы показать кого-то во вводном классе Java?
У этого человека есть опыт программирования в PL/SQL, но он никогда не разбирался в образовании шаблонов ООП.