Эффективный java говорит "Рассмотрите возможность предоставления статических factory методов вместо конструкторов"
Если у вас есть
class A {
public static A getInstance() {
return new A();
}
}
Имеет ли смысл предоставлять этот метод для класса A, а не вызывать новый код A() в коде.