Gibt es eine Möglichkeit der Objekt-Bildung ohne 'new'?

Jein! Manchmal kann es sinnvoll sein, die Bildung eines Objektes nicht direkt mit 'new' vorzunehmen, etwa wenn lange Parameterlisten erforderlich sind. In diesem Fall kann die Instanzierung über eine Methode erfolgen. Dort wird die Objekt-Bildung aber natürlich mit 'new' vorgenommen.

Das Factory-Pattern, von dem das Singleton-Pattern ein Sonderfall ist, zeichnet sich durch einen private deklarierten Konstruktor aus, um die direkte Instanzierung in anderen Klassen zu verhindern. Statt dessen wird die Objektbildung in einer statischen Methode vorgenommen, die das erzeugte Objekt zurück gibt.

public class FactoryClass {

    private FactoryClass() {
        System.out.println("Factory erzeugt");
    }

    public static FactoryClass getFactoryClass() {
        FactoryClass fc = new FactoryClass();
        return fc;
    }

    public static void main(String[] args) {
        FactoryClass.getFactoryClass();
    }
}

Der Aufruf lautet dann:

FactoryClass f = FactoryClass.getFactoryClass();