Ich habe den Ausführungen meiner Klassen:Lookup-Kartenwerte und ruft angepassten Implementierungen
public interface Device {
void create();
}
public class Printer implements Device {
@Override
public void create() {
}
public class Mouse implements Device {
@Override
public void create() {
}
public class ProcessImpl implements Processor {
private final Map<String, Set<String>> deviceMap = new HashMap<>();
@Override
public void process(String input) {
populateMap(input);
//call to `provision(deviceMap)`
}
deviceMap
Werte wie dies beispielsweise angeordnet sind: {123 = [P, M], 224 = [C, P, M]}
wo 123
eine ID
und Stringwerte C',
P ,
M` Geräte repräsentiert gegen die entsprechende ID geschaffen werden.
Meine Frage ist, wie kann ich über diese Karte in provision(deviceMap)
Methode und create
die Geräte durch den Aufruf ihrer entsprechenden create()
Methode iterieren. (Erzielung von Polymorphismus), z.B.
Wenn P
-> Rufen Sie create()
in Printer
Implementierung von Device
. Was ist gutes Design/Muster, das ich verwenden kann, um die Klassen zu strukturieren? Kann enum
dabei helfen oder gibt es einen besseren Reiniger Ansatz?