Hallo miteinander,
ich habe zur Zeit das Problem das ich gerne eine Fallunterscheidung für Betriebssysteme vornehmen möchte, sprich betriebssystemspezifische Eigenschaften setzen.
Vom logischen habe ich mir folgendes gedacht:
[highlight=Java]
Klasse OperationSystem
//beinhaltet Eigenschaften die alle BS gemeinsam haben
Klasse OperationSystemMac extends OperationSystem:
// Mac spezifische Eigenschaften
Klasse OperationSystemWindows extends OperationSystem:
//Windows spezifische Eigenschaften
[/highlight]
Und hier ist mein Problem:
In meinem Programm wollte ich ein "globales" OperationSystem-Objekt haben mit dem ich, je nach Betriebssystem, auf die Eigenschaften zugreifen kann.
Nur wie kann ich zur Laufzeit ein Objekt erzeugen mit dem ich auf die Eigenschaften des BS zugreifen kann ohne das ich immer, egal welches BS, ein Mac, Windowsobject etc. habe?
Sprich:
[highlight=Java]
OperationSystemMac osm;
OperationSystemWin owin;
OperationSystem os = new OperationSystem();
//Bsp Mac
if(os.getOperationSystem instanceof OperationSystemMac) {
osm = os.getOperationSystem();
}
Mit der oben beschriebenen Variante müsste ich ja nun im Programmcode immer abfragen:
if(osm != null) {
...
}
else if(owin != null) ....
[/highlight]
Wie kann ich vorgehen das ich in einem Objekt meine spezifiscehn Einstellungen für das Betriebssystem habe?
Sprich ein globales Objekt das mein Betriebssystem repräsentiert.
Ist der Weg über eine Schnittstelle, abstrakte Klasse evt. der richtige Weg?
Vielen Dank für eure Hilfe
Tobi
ich habe zur Zeit das Problem das ich gerne eine Fallunterscheidung für Betriebssysteme vornehmen möchte, sprich betriebssystemspezifische Eigenschaften setzen.
Vom logischen habe ich mir folgendes gedacht:
[highlight=Java]
Klasse OperationSystem
//beinhaltet Eigenschaften die alle BS gemeinsam haben
Klasse OperationSystemMac extends OperationSystem:
// Mac spezifische Eigenschaften
Klasse OperationSystemWindows extends OperationSystem:
//Windows spezifische Eigenschaften
[/highlight]
Und hier ist mein Problem:
In meinem Programm wollte ich ein "globales" OperationSystem-Objekt haben mit dem ich, je nach Betriebssystem, auf die Eigenschaften zugreifen kann.
Nur wie kann ich zur Laufzeit ein Objekt erzeugen mit dem ich auf die Eigenschaften des BS zugreifen kann ohne das ich immer, egal welches BS, ein Mac, Windowsobject etc. habe?
Sprich:
[highlight=Java]
OperationSystemMac osm;
OperationSystemWin owin;
OperationSystem os = new OperationSystem();
//Bsp Mac
if(os.getOperationSystem instanceof OperationSystemMac) {
osm = os.getOperationSystem();
}
Mit der oben beschriebenen Variante müsste ich ja nun im Programmcode immer abfragen:
if(osm != null) {
...
}
else if(owin != null) ....
[/highlight]
Wie kann ich vorgehen das ich in einem Objekt meine spezifiscehn Einstellungen für das Betriebssystem habe?
Sprich ein globales Objekt das mein Betriebssystem repräsentiert.
Ist der Weg über eine Schnittstelle, abstrakte Klasse evt. der richtige Weg?
Vielen Dank für eure Hilfe
Tobi
Zuletzt bearbeitet: