Hallo ich hätte da mal eine grundsätzliche Frage zum Decorator-Pattern. Ich möchte eine Klasse Konto so dekorieren, dass ein zusätzliches Feld "private int customerId" (mit Gettern und Settern) vorhanden ist.
Jetzt heißt es überall, der Dekorierer (z.B. in meinem Fall "KontoPlusCustomerId" mit Instanzvariable "Konto konto"), solle vom Typ her dem zu dekorierenden Objekt entsprechen und auch von außen als solches behandelt werden. Also würde ich "KontoPlusCustomerId extends Konto" implementieren. Jetzt ergibt sich da meinem Verständnis nach aber ein Problem.
Wie soll man denn die Methode "getCustomerId()" aufrufen, wenn man das Objekt als Konto initialisiert und rumreicht. Das lässt einem der Compiler doch nicht durchgehen, weil "Konto" das garnicht kennt.
Soll man da jedes Mal, einen Typcast vornehmen? Und wenn ja, wieso soll man das ganze Objekt dann überhaupt als Konto deklarieren, wenn der einzige Zweck ja darin besteht, diese zusätliche Id abzuspeichern?
Jetzt heißt es überall, der Dekorierer (z.B. in meinem Fall "KontoPlusCustomerId" mit Instanzvariable "Konto konto"), solle vom Typ her dem zu dekorierenden Objekt entsprechen und auch von außen als solches behandelt werden. Also würde ich "KontoPlusCustomerId extends Konto" implementieren. Jetzt ergibt sich da meinem Verständnis nach aber ein Problem.
Wie soll man denn die Methode "getCustomerId()" aufrufen, wenn man das Objekt als Konto initialisiert und rumreicht. Das lässt einem der Compiler doch nicht durchgehen, weil "Konto" das garnicht kennt.
Soll man da jedes Mal, einen Typcast vornehmen? Und wenn ja, wieso soll man das ganze Objekt dann überhaupt als Konto deklarieren, wenn der einzige Zweck ja darin besteht, diese zusätliche Id abzuspeichern?