Rufen Sie eine spezifische Methode auf, die auf dem Aufzählungstyp basiert?

7

Hier ist ein abstraktes Beispiel für mein Problem: Ich habe eine allgemeine Klasse ( Car ), die einen Typ hat ( brand ). Alle Objekte sollten sich nur nach Marke unterscheiden, und basierend auf dieser Marke sollte anders gehandhabt werden.

Alle Objekte dieser Klasse werden in einer Liste einer Dienstklasse gesammelt. Der Dienst sollte eine Routine auf der gesamten Liste ausführen, die meistens gleich ist. Nur ein Funktionsaufruf dazwischen sollte sich unterscheiden.

Ausgehend von diesem Typ möchte ich verschiedene Methoden aufrufen: Im Moment mache ich Equal für den Enum-Typ geltend und rufe verschiedene Methoden auf, die auf dem Ergebnis basieren. Aber das ist irgendwie hässlich und ich frage mich, ob es bessere Lösungen dafür gibt?

%Vor%     
membersound 17.10.2012, 13:41
quelle

2 Antworten

24

Sie sollten die Methode in die Enumeration einfügen:

%Vor%     
SLaks 17.10.2012, 13:43
quelle
4

Erwägen Sie, eine abstrakte Methode für die Enumeration zu definieren:

%Vor%

Dann können Sie anrufen:

%Vor%     
Thomas Jensen 17.10.2012 13:46
quelle

Tags und Links