Ich sehe viele instanziierbare Klassen in der C ++ - und Java-Welt, die keinen Status haben.
Ich kann wirklich nicht herausfinden, warum die Leute das tun, sie könnten einfach einen Namespace mit freien Funktionen in C ++ oder eine Klasse mit einem privaten Konstruktor und nur statischen Methoden in Java verwenden.
Der einzige Vorteil, den ich mir vorstellen kann, ist, dass Sie den größten Teil Ihres Codes nicht ändern müssen, wenn Sie später entscheiden, dass Sie in bestimmten Situationen eine andere Implementierung wünschen. Aber ist das nicht ein Fall von verfrühtem Design? Es könnte später in eine Klasse umgewandelt werden, wenn / wenn es angemessen wird.
Verstehe ich das falsch? Ist es nicht OOP, wenn ich nicht alles in Objekte stecke (dh instanziierte Klassen)? Warum gibt es dann so viele Utility-Namespaces und -Klassen in den Standardbibliotheken von C ++ und Java?
Update: Ich habe in meinen vorherigen Jobs sicherlich viele Beispiele dafür gesehen, aber ich habe Mühe, Open-Source-Beispiele zu finden. Vielleicht ist das ja doch nicht so üblich. Trotzdem frage ich mich, warum die Leute das tun und wie häufig es ist.