<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Werte Klassenabhängig erstellen]]></title><description><![CDATA[<p>Moin in die Runde,</p>
<p>Ich habe eine mehr oder weniger theoretische Frage nach der besten Lösung für ein Problem.<br />
Es geht dabei um folgendes Scenario:<br />
Ich habe eine Vererbungshierarchie von Klassen, als anschauliches Beispiel nehmen wir Mitarbeiter einer Firma.<br />
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.<br />
Die IDs selber werden von einer zentralen ID-Klasse vergeben und gespeichert.</p>
<p>Beispiel:<br />
Vererbungshierachie:<br />
Angestellter -&gt; Teamleiter -&gt; Bereichsleiter -&gt; Chef</p>
<p>Die ID-Vorlagen:<br />
Angestellter: &quot;A-[Bereich-Nr]-[Nr]&quot;<br />
Teamleiter: &quot;T-[Nr]-B-[Nr]-[Nr]&quot;<br />
usw...</p>
<p>Die IDs haben unterschiedliche Längen, Schemata und benötigen Werte aus der jeweiligen Klasse und der zentralen ID-Klasse.<br />
Die ID-Klasse darf auf die Mitarbeiter-Klasse zugreifen, umgekehrt ist das nicht so sehr gewünscht.<br />
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.<br />
WIE sie erstellt wird ist egal, kann also auch durch den Funktionsaufruf einer anderen Klasse geschehen...</p>
<p>Jetzt ist die Frage, wie man das am besten löst. Man könnte jeder Klasse eine &quot;Klassen-ID&quot; mitgeben, man könnte versuchen ob ein cast zur entsprechenden Klasse klappt, man könnte ein visitor- oder Strategy-Pattern einsetzen usw...<br />
Gibt unterschiedliche Möglichkeiten, aber welche ist sauber und gut?</p>
<p>Viele Grüße<br />
Cherup</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/337133/werte-klassenabhängig-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 10:02:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337133.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Mar 2016 14:16:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Werte Klassenabhängig erstellen on Thu, 10 Mar 2016 14:16:59 GMT]]></title><description><![CDATA[<p>Moin in die Runde,</p>
<p>Ich habe eine mehr oder weniger theoretische Frage nach der besten Lösung für ein Problem.<br />
Es geht dabei um folgendes Scenario:<br />
Ich habe eine Vererbungshierarchie von Klassen, als anschauliches Beispiel nehmen wir Mitarbeiter einer Firma.<br />
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.<br />
Die IDs selber werden von einer zentralen ID-Klasse vergeben und gespeichert.</p>
<p>Beispiel:<br />
Vererbungshierachie:<br />
Angestellter -&gt; Teamleiter -&gt; Bereichsleiter -&gt; Chef</p>
<p>Die ID-Vorlagen:<br />
Angestellter: &quot;A-[Bereich-Nr]-[Nr]&quot;<br />
Teamleiter: &quot;T-[Nr]-B-[Nr]-[Nr]&quot;<br />
usw...</p>
<p>Die IDs haben unterschiedliche Längen, Schemata und benötigen Werte aus der jeweiligen Klasse und der zentralen ID-Klasse.<br />
Die ID-Klasse darf auf die Mitarbeiter-Klasse zugreifen, umgekehrt ist das nicht so sehr gewünscht.<br />
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.<br />
WIE sie erstellt wird ist egal, kann also auch durch den Funktionsaufruf einer anderen Klasse geschehen...</p>
<p>Jetzt ist die Frage, wie man das am besten löst. Man könnte jeder Klasse eine &quot;Klassen-ID&quot; mitgeben, man könnte versuchen ob ein cast zur entsprechenden Klasse klappt, man könnte ein visitor- oder Strategy-Pattern einsetzen usw...<br />
Gibt unterschiedliche Möglichkeiten, aber welche ist sauber und gut?</p>
<p>Viele Grüße<br />
Cherup</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2489888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2489888</guid><dc:creator><![CDATA[Cherup]]></dc:creator><pubDate>Thu, 10 Mar 2016 14:16:59 GMT</pubDate></item></channel></rss>