Hallo Forum,
ist nur eine kleine Frage. Mir geht es darum, dass verschiedene Modellklassen in verschiedenen Kontexten auch verschiedene Erweiterungen brauchen. Ein Beispiel: Ich bekomme Objekte von einem Web Service und stelle diese in einer Tabelle dar. Die Daten werden in den Spalten angezeigt und es gibt eine zusätzliche Auswahlspalte mit einer Checkbox, mit der man einzelne Zeilen aktivieren kann. Also braucht jede Zeile ein zusätzliches Attribut [c]checked[/c].
Wie würdet ihr das am besten angehen? Spontan fallen mir zwei Möglichkeiten ein:
1. Ein neues Objekt wird erstellt, welches beide Informationen enthält. In etwa
2. Es wird vom alten Objekt geerbt und ein zusätzliches Attribut hinzugefügt:
Vielleicht gibt es ja auch noch mehr. Das etwas nervige an beiden Varianten ist, dass wegen wegen solcher Kleinigkeiten immer neue Objekte erzeugt werden müssen und dann ist alles voll mit [c]ExtendedData[/c], [c]SelectableData[/c], [c]FooData[/c], ...
Vielleicht habe ich ja noch etwas offensichtliches übersehen. Vielleicht ist es ja auch Ok, nach einer der beiden Varianten vorzugehen und nur mir kommts komisch vor.
Danke schonmal
mK
ist nur eine kleine Frage. Mir geht es darum, dass verschiedene Modellklassen in verschiedenen Kontexten auch verschiedene Erweiterungen brauchen. Ein Beispiel: Ich bekomme Objekte von einem Web Service und stelle diese in einer Tabelle dar. Die Daten werden in den Spalten angezeigt und es gibt eine zusätzliche Auswahlspalte mit einer Checkbox, mit der man einzelne Zeilen aktivieren kann. Also braucht jede Zeile ein zusätzliches Attribut [c]checked[/c].
Wie würdet ihr das am besten angehen? Spontan fallen mir zwei Möglichkeiten ein:
1. Ein neues Objekt wird erstellt, welches beide Informationen enthält. In etwa
Java:
public class DataSelectIndicator {
Data data;
boolean selected;
}
Java:
public class SelectableData extends Data {
boolean selected;
}
Vielleicht gibt es ja auch noch mehr. Das etwas nervige an beiden Varianten ist, dass wegen wegen solcher Kleinigkeiten immer neue Objekte erzeugt werden müssen und dann ist alles voll mit [c]ExtendedData[/c], [c]SelectableData[/c], [c]FooData[/c], ...
Vielleicht habe ich ja noch etwas offensichtliches übersehen. Vielleicht ist es ja auch Ok, nach einer der beiden Varianten vorzugehen und nur mir kommts komisch vor.
Danke schonmal
mK