Seite 1 von 1

Aufgabe 8.1 Vererbung und Kombinierbarkeit

Verfasst: 16. Dez 2009 19:49
von The Decker
Hi,

Ich habe zur Aufgabe eine Frage: Soweit ich das interpretiere, sollen wir die Funktionalität durch Erweiterungen (im Rahmen der Vererbung) zur Basis-Hierarchie ergänzen, also durch Subklassen.

Es ist allerdings nur von zwei Erweiterungen (format,optimize) die Rede, was ich als zwei Subklassen interpretiere.

Für den TestCase (optimizedPrint) werden nun jedoch beide Funktionalitäten gleichzeitig benötigt, was meines Erachtens eine dritte Erweiterung nötig machen würde, die beide vorherigen kombiniert ? Dies widerspricht der in der Aufgabe genannten "Schranke" von zwei Erweiterungen.

Ist da die Aufgabe etwas ungünstig formuliert, oder bin ich einfach auf dem Holzweg ?
(Falls die Frage zu viele Informationen enthalten sollte, einfach Bescheid sagen)

Grüße,

Martin

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Verfasst: 16. Dez 2009 21:30
von marcel_b
nein, beide funktionalitäten sollen nur getrennt voneinander vorhanden sein - der Testfall muss also nicht erfüllt werden. Aber man könnte beide zusammen abieten, richtig? Diese Frage nach dem "wie" sollte ihr in den Theoriefragen beantworten - nicht implementieren

Gruß
Marcel

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Verfasst: 16. Dez 2009 22:38
von The Decker
marcel_b hat geschrieben:der Testfall muss also nicht erfüllt werden
Danke, das hilft mir weiter.
marcel_b hat geschrieben: Aber man könnte beide zusammen abieten, richtig?
Tja, darauf wird dann noch eingegangen werden ^^

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Verfasst: 18. Dez 2009 13:31
von CloneCommander
Hi,

sehe ich das richtig, dass wir quasi die bereits vorhandenen Methoden für PrettyPrinting usw erst einmal komplett raus werfen sollen, um sie dann nur mittels Vererbung zu ergänzen? Oder sollen wir sonst noch irgendwas umbauen?
Ich verstehe nämlich gerade nicht so ganz warum und wie ich eine neue "Basis-Hierarchie" erstellen soll?!

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Verfasst: 18. Dez 2009 14:21
von marcel_b
Ja, grundsätzlich verstehst du das richtig.

> Ich verstehe nämlich gerade nicht so ganz warum und wie ich eine neue "Basis-Hierarchie" erstellen soll?!

Hmm... ok. Mal ein paar Fragen für dich die vielleicht beim Verstehen helfen:

Welche Aufgaben/Responsibilities erfüllt die Klasse Expr mittlerweile?
Welche davon gehören tatsächlich zu einer Expr Hierarchie?
Kannst du dir weiter Responsibilities vorstellen, die man in die Hierarchie reinbringen kann?
Wenn ja, mehr als 10?
Wenn du alle möglichen Erweiterungen drinnen hast, ist es dann noch SRP konform? Bzw. kann es sein, das es Clients gibt, die gewissen Funktionen nicht benötigen?
Wie sieht es mit der Kombination von einzelnen solcher Features aus? Wie machst kannst du das das in Java letztendlich machen? Was ist das Problem mit Vererbung?

Wie lauten deine Antworten?

Gruß
Marcel

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Verfasst: 18. Dez 2009 20:18
von CloneCommander
Hi Marcel,

ich bin mir gerade nicht so sicher, wie mir die Antworten weiter helfen, hier sind sie aber trotzdem:

> Welche Aufgaben/Responsibilities erfüllt die Klasse Expr mittlerweile?
Drei: eval, format und optimize

> Welche davon gehören tatsächlich zu einer Expr Hierarchie?
Wenn du so fragst aber vermutlich nur eval...

> Kannst du dir weiter Responsibilities vorstellen, die man in die Hierarchie reinbringen kann?
Gerade nicht, also keine die dann wirklich passen würden.

> Wenn ja, mehr als 10?
0

> Wenn du alle möglichen Erweiterungen drinnen hast, ist es dann noch SRP konform? Bzw. kann es sein, das es Clients gibt, die gewissen Funktionen nicht benötigen?
Erübrigt sich da ich vermutlich schon nicht auf die richtige Antwort 2 Fragenb weiter oben gekommen bin ^^
Abgesehen davon habe ich bei dieser Aufgabe nicht über SRP-Konfomität nachgedacht, da ich es so verstanden hatte, einfach mal nur mit Vererbung zu arbeiten. Sicherlich werden manche Clients bestimmte Funktionen nicht benötigen. Eine Logikklasse braucht z.B. kein PrettyPrinting

> Wie sieht es mit der Kombination von einzelnen solcher Features aus? Wie machst kannst du das das in Java letztendlich machen?
Nacheinander erben lassen...

> Was ist das Problem mit Vererbung?
Man braucht quasi für jede mögliche Kombination eine Klasse, die sie beinhaltet (durch "verkettete" Vererbung usw.). Das gibt u.U. sehr viele Klassen :)


Irgendwie machts noch nicht klick ^^
Liegt vielleicht auch daran, dass ich vor Kurzem noch mit Fieber im Bett lag und mein Gehirn noch im Standby-Modus läuft :D

Vielen Dank aber trotzdem schonmal für deine Mühe...
Tibor

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Verfasst: 19. Dez 2009 14:51
von Hansemann
Ich weiß nicht ob ich einfach zu blöd bin grad, aber ich verstehe die Aufgabe (auch nach 10maligem durchlesen) überhaupt nicht....

Sollen diese 3 Methoden in 3 Klassen ausgelagert werden die voneinander erben?

Oder Soll so etwas wie BinEXpr von 3 Klassen EvalExpr, FormatExpr und OptExpr erben?
(Aber da Multivererbung in Java nicht geht, ist das vermutlich falsch)

Ich bin total verwirrt...

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Verfasst: 19. Dez 2009 17:57
von Martin K
Hansemann hat geschrieben:Oder Soll so etwas wie BinEXpr von 3 Klassen EvalExpr, FormatExpr und OptExpr erben?
(Aber da Multivererbung in Java nicht geht, ist das vermutlich falsch)
Glaube so in der Art soll es sein, und diese Probleme sollen wir bei der 1.3 dann aufzeigen.

Aber vorsichtshalber stelle ich mal die Frage:
Dürfen wir Interfaces verwenden, oder wird uns das mit "Verwenden Sie jedoch nur Vererbung – keine Objekt-Komposition" verboten?

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Verfasst: 21. Dez 2009 11:32
von Wambolo
Martin K hat geschrieben: Aber vorsichtshalber stelle ich mal die Frage:
Dürfen wir Interfaces verwenden, oder wird uns das mit "Verwenden Sie jedoch nur Vererbung – keine Objekt-Komposition" verboten?
das Frage ich mich auch

edit:

Achja, ist es erlaubt klassen zu kopieren? Also damit meine ich z.B. der Erweiterung einer Klasse alle möglichen Subklassen die ihre Basisklasse hat zu spendieren und zu modifizieren

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Verfasst: 21. Dez 2009 11:49
von marcel_b
Ihr braucht keine. Kommt heute bis 15:30 vorbei, wenn es euch nicht klar wird.