Best Practise - 'instanceof' oder nicht.

  • Themenstarter Themenstarter lulale458
  • Beginndatum Beginndatum
L

lulale458

Gast
Hi!
Folgenden Sachverhalt, ich habe ein Service welches eine Methode 'update(Object obj)' beinhaltet. In selbiger Methode sollen nun div. Sachen durchgeführt werden - ist hierfür egal. Das Problem ist dass ich bspw. 5 Klassen habe welche mit dieser 'update' Methode behandelt werden sollen.

Was ist hierbei best practise? Soll für jede der 5 Klassen eine eigene update Methode schreiben --> 'update(Klasse1 kl1)', update(Klasse2 kl2)' etc.
oder
wie oben schon geschrieben mache ich einfach nur eine Methode welche als Parameter nur 'Object' bekommt und mache dann in der Methode 'instanceof' Abfragen?
 
Was updated sich da konkret? Wenn man bereits einen gemeinsamen Typen hat, ist das kein Problem. Wenn nicht, kann man ggf. mit Generics o.ä. etwas "basteln".
 
Nein es gibt keinen gemeinsamen Typ (ausser Object 🙂).
Ich kann/darf die Klassen auch nicht verändern..
 
Was wird da denn konkret updated (bereits gefragt...)? Wie registriert sich eine Klasse bei wem? Wie ist die SW aufgebaut, was geht da vor? Ohne konkretere Angaben kann man imho nicht helfen.
 
Im Detail wird in dieser update-Methode dann aus den Klassen 1-5 ein anderes Objekt erzeugt, eben abhängig davon um welche Klasse es sich handelt.
Sprich ich brauche in dieser update-Methode ein Objekt vom Typ Klasse6, selbige Klasse hat div. Konstruktoren wo die Parameter entweder KLasse1 oder Klasse2 etc ist. Das brauche ich deshalb weil Klasse6 alle möglichen Felder beinhaltet und die Klassen 1-5 unterschiedliche und teils auch gleiche Felder haben. In den jeweiligen Konstruktor werden dann die jeweiligen Felder gesetzt.

Klasse 1-5 sind einfache javax.Entities, Klasse 6 brauche ich für Solr..
 
5x5 ifs..,
der quadratische Anstieg läßt nichts gutes erhoffen, hättest du bei 10 Klassen bereits 100 Abfragen, bei 30 Tausende usw?

wenn ohne echte Regel beliebig reagiert werden muss und statt n^2 nur deutlich weniger Fälle letztlich eingebaut werden müssen,
sehe ich an den Einzel-ifs keinen Weg vorbei

vielleicht lassen sich aber doch gemeinsame Eigenschaften zusammenfassen
 
es gibt eine Klasse die die update Methode hat und dann auf n verschiedene Klassen arbeiten soll ?

das ist merkwuerdig. Sinnvoller waere es, wenn die n verschieden Klassen sich als Updateable registrieren und der Service benachrichtigt alle registrierten einfach.
 

Zurück
Oben