Я исследовал это после того, как прочитал «Эффективную книгу Java» Джошуа Блока, пункт 1, об использовании фабричных статических методов вместо конструкторов. Там в тексте он защищает использование, когда это возможно, и приводит, среди прочего, возможность применения стандартов Singleton или Flyweight . В нем также приводится случай класса Boolean
, который разумно использует Flyweight с помощью метода valueOf (boolean)
:
public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}
Мой вопрос: я понимаю преимущества использования этих шаблонов, но не может быть реализовано в самом конструкторе? Одно только их использование не оправдывает создание статического фабричного метода.