So wie es jetzt ausschaut, wird dieser Paginator eine Menge Funktionen beinhalten; soll ich alles in diese eine Klasse packen, oder evtl. eine Klasse für die beteiligten Funktionen als „Hauptklasse“, und den Aufruf und die diversen ausgabemöglichkeiten dann über den Pagination_builder?
Die frage ist doch: Wie viele Klassen und Objekte brauchst du wirklich.
Eine Elternklasse macht sinn, wenn dein Paginator Methoden enthält welche du auch für andere ähnliche Zwecke verwenden kannst und willst (funktionen erben).
Beispiel: Klasse Fahrzeug -> währe eine Ideale Elternklasse für die Klassen PKW und LKW
Eine Builderklasse macht nur sinn, wenn du entweder mehrere Objekte erstellst oder für die Erstellung mehrere Objekte benötigst, welche verwaltet werden müssen. Ansonsten ist __constructor der einzige Builder den du brauchst.
Leider fällt mir hier kein Beispiel ein. Ich kenne Builderklassen nur aus Java und da sind sie sehr selten.
Daneben gibt es noch die Möglichkeit Klassen für weitere Zwecke zu erstellen, die einfach innerhalb deiner Klasse verwendet werden:
Beispiel: die Klasse Color, hier kann man die Farbe als RGB speichern und Funktionen zum Errechnen oder Umrechnen der Farbe Implementieren (toHex/fromHex/toCMYK/fromCMYK)
Um diese Frage zu klären musst du dir alle Funktion die du verwendest anschauen und sie in 3 Kategorien aufteilen:
1.) Die Funktion wird Einzigartig für den Paginator gebraucht -> cass Paginator
2.) Die Funktion ist allgemein gebräuchlich -> eine einfache functions.php z.b. oder bei mehreren Funktionen eines Themas ein eigenes Objekt welches in deinem Objekt verwendet wird (egal ob als Parameter oder im Script)
3.) die Funktion kannst du Ideal für weitere ähnliche Klassen gebrauchen -> Elternklasse
Das ist zuminst meine Sicht, man möge mich korrigieren wenn meine Ansicht falsch ist.