OOP Design Problem
-
Hallo,
habe ein Klassen Design Problem.Und zwar will ich mir ein paar GUI Klassen schreiben.
Dazu folgende rein abstrakte Klassen ( "<-" Vererbungspfeil):
Component <- Container <- FrameHabe vor folgende reelle Klassen zu machen:
WinComponent <- WinContainer <- WinFrame
und
MacComponent <- MacContainer <- MacFrameJetzt mein Problem:
Wie kriege ich die abstrakten und die reellen Klassen zusammen?Folgendes geht nicht:
Wenn ich WinFrame von Frame ableite,
kann ich keine Instanz erzeugen, da die geerbten Methoden von Component und Container noch abstrakt sind.Irgend jemand eine Idee.
-
Mehrfachvererbung vielleicht?
-
Daran dachte ich auch schon geht aber auch nicht. Muss ihm irgendwie sagen
dass er von Frame ableiten soll aber die Klassen, die unterhalb von Frame in
der Vererbungshierarchie sind, sollen spezialisierte Klassen sein.
-
du brauchst eine konkrete klasse welche du von den abstrakten erben laesst - das kannst du dann instanziieren
abtract <- abtract <- abtract <- konkret - wo ist das problem?
-
du koenntest die frame klasse als template klasse schreiben und frame vom template-parameter erben lassen.
Meep Meep
-
Das Problem ist, das ich in der WinFrame Klasse nicht die Methoden von Container und Component ausprogrammieren will, da sie ja schon in WinComponent und WinContainer ausprogrammiert sind.
Gibt es in C++ eine Möglichkeit in der WinFrame Klasse zu sagen:
void methode_aus_component() = WinComponent::methode_aus_component();oder irgendwie mit dem using Schlüsselwort?
-
bridge-pattern?
-
Das Bridge Pattern ist glaub ich das richtige für mich.
Muss ich mir erst näher ansehen (und verstehen).Danke für eure Hilfe