Недавно я обнаружил интересный способ создания нового экземпляра объекта в Google Guava и Project Lombok: скрыть конструктор за статическим создателем. Это означает, что вместо new HashBiMap()
вы выполняете HashBiMap.create()
.
Мой вопрос - почему? Какое преимущество у вас скрывает конструктор? Для меня я не вижу абсолютно никакого преимущества в этом, и, похоже, он нарушает принципы создания базовых объектов. С самого начала вы создаете объект с new Object()
, а не каким-то методом Object.createMe()
. Это похоже на создание метода для создания метода.
Что вы получаете от этого?