Werte Klassenabhängig erstellen



  • Moin in die Runde,

    Ich habe eine mehr oder weniger theoretische Frage nach der besten Lösung für ein Problem.
    Es geht dabei um folgendes Scenario:
    Ich habe eine Vererbungshierarchie von Klassen, als anschauliches Beispiel nehmen wir Mitarbeiter einer Firma.
    Jetzt soll jedem Mitarbeiter eine eindeutige ID aus Zahlen und Buchstaben zugewiesen werden. Das Schema der ID hängt dabei von der Klasse des Mitarbeiters ab.
    Die IDs selber werden von einer zentralen ID-Klasse vergeben und gespeichert.

    Beispiel:
    Vererbungshierachie:
    Angestellter -> Teamleiter -> Bereichsleiter -> Chef

    Die ID-Vorlagen:
    Angestellter: "A-[Bereich-Nr]-[Nr]"
    Teamleiter: "T-[Nr]-B-[Nr]-[Nr]"
    usw...

    Die IDs haben unterschiedliche Längen, Schemata und benötigen Werte aus der jeweiligen Klasse und der zentralen ID-Klasse.
    Die ID-Klasse darf auf die Mitarbeiter-Klasse zugreifen, umgekehrt ist das nicht so sehr gewünscht.
    Die ID-Klasse hat eine Funktion getNewID(Angestellter* _object), in der eine ID nach dem Muster für die jeweilige Klasse erstellt und zurückgegeben werden soll.
    WIE sie erstellt wird ist egal, kann also auch durch den Funktionsaufruf einer anderen Klasse geschehen...

    Jetzt ist die Frage, wie man das am besten löst. Man könnte jeder Klasse eine "Klassen-ID" mitgeben, man könnte versuchen ob ein cast zur entsprechenden Klasse klappt, man könnte ein visitor- oder Strategy-Pattern einsetzen usw...
    Gibt unterschiedliche Möglichkeiten, aber welche ist sauber und gut?

    Viele Grüße
    Cherup


Log in to reply