Im Moment überprüfe ich, ob ein Objekt eine Instanz von X, Y, Z ist und wenden Sie einige Methoden an. (Dies sind nur Illustrationen :)JAVA - Refactoring mehrere "instanceof" mit einer Liste
if (X instanceof Car || X instaceof Bus || ...) {
X.color = RED;
}
Allerdings, wenn ich 300 Objekte mit (ex vergleichen: Auto, Bus, Fahrrad, Bahn, Flugzeug, ...) wie würde ich drum herum gehen Faktorisierung? Ich dachte an eine List oder ein Array machen, sondern initialisiert es ein bisschen zu lang scheint:
Car car = new Car();
Bus bus = new Bus();
...
List<Transportation> list_t = Arrays.asList(car, bus, ...);
for (Transportation t : list_t) {
if (X instance of t)
X.color = RED;
}
Anregungen werden sehr geschätzt, danke.
Haben Sie viele dieser "if" -Statements? Gibt es eine Klassenhierarchie oder gibt es keine Typen mit Unterklassen? – Bohemian
Vielleicht möchten Sie in Visitor-Pattern suchen. – Fildor
Warum nicht 'X.color = X.getColor();'? Und dann kannst du natürlich einfach 'X.setColor();' ändern, und dann kannst du es entfernen, indem du es so machst, dass Autos, Busse usw. sowieso immer rot sind. – immibis