Helper Klasse mit Statischen Methoden oder nicht??



  • Hallo Leute,

    ich entwickle gerade ein 3D Model Tool, um 3DModel zusammenzusetzen Anzuzeigen etc. Da hab ich für meine Zwecke nen erweiteren Szenengraphen etc. implementiert.. naja egal. Nun Hab ich eine "Helper" klasse, welche divere Funktionen anbietet welche ich auf einelen 3DKnoten etc. meines Scenengraphen anwenden kann.
    Nun gibts es drei möglichkeiten:

    1. Ich implementiere eine HelperKlasse welche statische Methoden behinhaltet welche jeweils Funktionalitäten darstellen.

    2. Ich implementiere eine HelperKlasse, erzeuge eine instanz (Singelton) und verwende die da nicht staische Methoden als Funktionen (Vorteil könnten ne referenz meine szenengrphen im kontruktor übergeben)

    3. Ich implementiere die funktionalitäten direkt in meine 3dKnoten klasse, so das keine HelperKlasse mehr nötig ist.

    Wann macht den eine HelperKlasse mit statischen Methoden sinn? Also beispiel die VisualTreeHelper Klasse von C#.



  • ich wuerd sagen "wie der name sagt" "Helper" sollen dabei helfen probleme zu loesen die man durch die eigenen methoden nur umstaendlich erreichen kann

    wenn du in einem objekt eine funktion immer und immerwieder brauchst macht es sinn es direkt rein zu packen - am sonsten lass es draussen (ich wuerd das statische bevorzugen da eine instanz zu erzeigen mir zu doof waere)

    anders sieht die sache bei generischen sachen aus, wenn der helper eine methode hat die fuer verschiedene objekte funktioniert - dann machts kein sinn es auf zu teilen - waere ja auch code dopplung



  • Einfach einen Namespace wo die Funktionen als ganz normale globale Funktionen reinkommen.

    Kannst du dann via 3dHelper::dosomething(node) benutzen.



  • Wenn die Methoden immer auf Basis des Zustands eines 3DKnoten Berechnungen machen, dann würde ich die Methoden auch in die Klasse 3DKnoten schreiben.
    Wenn die Methoden hingegen übergeordnet sind, das heisst z.B. auch Berechnungen auf Basis vieler 3DKnoten machen, dann spricht imo wenig gegen statische Methoden. Ein Singleton ist imo unnötig, da eine solche Helper-Klasse ja keinen Zustand hat. Ein Objekt ist somit obsolet.


Anmelden zum Antworten