Guten Morgen allerseits.
Ich schreibe mal wieder an meinem Generator für elektronische Bauteile. Diese haben ja bekanntlich verschiedene Eigenschaften (sowas wie Bauteilwert, Hersteller, Temperaturbereich, ...), die der Benutzer des Programms festlegen soll. Diese Eigenschaften werden von sog. Stamps generiert.
Verschiedene Stamps, die zusammengehören und gemeinsam dieselben (!= diegleichen) Bauteile erzeugen, sind zu einem StampSet zusammengefasst.
Hier mal eine kleine Tabelle, die das besser veranschaulicht:
Jetzt hab ich folgendes Problem: Ich hab drei Klassen die relativ unabhängig voneinander sind. Kein Stamp weiß etwas von einem anderen Stamp, kein StampSet weiß etwas von einem anderen StampSet. Dann gibt es noch die Library-Klasse, die die ganzen StampSets hält. Jetzt möchte ich aber, daß jedes StampSet ein Objekt für den Parameter 'Hersteller' hält.
Wie kriege ich in da jetzt Ordnung rein, und wie kann ich die Zuordnungen am Besten realisieren?
Mein erstes Konzept ging dahin, daß ich jedem Stamp-Objekt den Parameternamen mitgegeben habe. Und jedes StampSet habe ich mit einem Index versehen. Davon wollte ich gerne wegkommen. Einerseits möchte ich zumindest für die Bearbeitung die Einschränkung, immer verschiedene Strings haben zu müssen, nicht haben. Die Identifizierung eines StampSets nur über den Index...gefällt mir irgendwie nicht so recht, ist aber eher ein Bauchgefühl.
Jetzt bin ich dazu übergegangen, den Klassen Stamp und StampSet einen eineindeutigen Identifier mitzugeben. Damit sind Namen und Indizees völlig egal, aber wie mache ich die Zuordnung am Besten? Mir fallen da nur wilde Geschichten mit verschachtelten ArrayLists ein - damit schaffe ich aber eher Chaos anstatt Ordnung.
Das zweite: Ich will ja nicht die vollständigen Daten in der View haben. Daher dachte ich, daß ich ein Modell davon erstelle daß nur das enthält, was zur Anzeige und zur Ausführung von Benutzereingaben relevant ist. Also drei Klassen StampModel, StampsetModel, LibraryModel. Hier habe ich allerdings exakt das gleiche Problem mit der Zuordnung, daher würde ich das gerne erstmal im Model lösen.
Also...wie würdet ihr das machen?
Ich schreibe mal wieder an meinem Generator für elektronische Bauteile. Diese haben ja bekanntlich verschiedene Eigenschaften (sowas wie Bauteilwert, Hersteller, Temperaturbereich, ...), die der Benutzer des Programms festlegen soll. Diese Eigenschaften werden von sog. Stamps generiert.
Verschiedene Stamps, die zusammengehören und gemeinsam dieselben (!= diegleichen) Bauteile erzeugen, sind zu einem StampSet zusammengefasst.
Hier mal eine kleine Tabelle, die das besser veranschaulicht:
Code:
+----------------+---------------+-------------------+
| Hersteller | Toleranz | Verlustleistung |
+----------------+---------------+-------------------+
| Hochlastwiderstände |
+----------------------------------------------------+
| Vishay | 5% | 5W, 10W, 25W, 50W |
+----------------+---------------+-------------------+
| Präzisionswiderstände |
+----------------------------------------------------+
| Isabellenhütte | 1%, 0,5% 0,1% | 0,1W |
+----------------+---------------+-------------------+
Jetzt hab ich folgendes Problem: Ich hab drei Klassen die relativ unabhängig voneinander sind. Kein Stamp weiß etwas von einem anderen Stamp, kein StampSet weiß etwas von einem anderen StampSet. Dann gibt es noch die Library-Klasse, die die ganzen StampSets hält. Jetzt möchte ich aber, daß jedes StampSet ein Objekt für den Parameter 'Hersteller' hält.
Wie kriege ich in da jetzt Ordnung rein, und wie kann ich die Zuordnungen am Besten realisieren?
Mein erstes Konzept ging dahin, daß ich jedem Stamp-Objekt den Parameternamen mitgegeben habe. Und jedes StampSet habe ich mit einem Index versehen. Davon wollte ich gerne wegkommen. Einerseits möchte ich zumindest für die Bearbeitung die Einschränkung, immer verschiedene Strings haben zu müssen, nicht haben. Die Identifizierung eines StampSets nur über den Index...gefällt mir irgendwie nicht so recht, ist aber eher ein Bauchgefühl.
Jetzt bin ich dazu übergegangen, den Klassen Stamp und StampSet einen eineindeutigen Identifier mitzugeben. Damit sind Namen und Indizees völlig egal, aber wie mache ich die Zuordnung am Besten? Mir fallen da nur wilde Geschichten mit verschachtelten ArrayLists ein - damit schaffe ich aber eher Chaos anstatt Ordnung.
Das zweite: Ich will ja nicht die vollständigen Daten in der View haben. Daher dachte ich, daß ich ein Modell davon erstelle daß nur das enthält, was zur Anzeige und zur Ausführung von Benutzereingaben relevant ist. Also drei Klassen StampModel, StampsetModel, LibraryModel. Hier habe ich allerdings exakt das gleiche Problem mit der Zuordnung, daher würde ich das gerne erstmal im Model lösen.
Also...wie würdet ihr das machen?