Aufgabe 8.1 Vererbung und Kombinierbarkeit

The Decker
Neuling
Neuling
Beiträge: 9
Registriert: 31. Jan 2008 14:57

Aufgabe 8.1 Vererbung und Kombinierbarkeit

Beitrag 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

marcel_b
Nerd
Nerd
Beiträge: 600
Registriert: 31. Okt 2006 17:04
Kontaktdaten:

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Beitrag 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

The Decker
Neuling
Neuling
Beiträge: 9
Registriert: 31. Jan 2008 14:57

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Beitrag 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 ^^

CloneCommander
Mausschubser
Mausschubser
Beiträge: 49
Registriert: 19. Dez 2005 09:07
Wohnort: Maintal
Kontaktdaten:

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Beitrag 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?!

marcel_b
Nerd
Nerd
Beiträge: 600
Registriert: 31. Okt 2006 17:04
Kontaktdaten:

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Beitrag 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

CloneCommander
Mausschubser
Mausschubser
Beiträge: 49
Registriert: 19. Dez 2005 09:07
Wohnort: Maintal
Kontaktdaten:

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Beitrag 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

Hansemann
Neuling
Neuling
Beiträge: 9
Registriert: 28. Okt 2009 10:16

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Beitrag 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...

Benutzeravatar
Martin K
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 110
Registriert: 13. Okt 2006 17:56

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Beitrag 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?
Gäbe es die letzte Minute nicht,
so würde niemals etwas fertig.

- Mark Twain

Wambolo
Computerversteher
Computerversteher
Beiträge: 381
Registriert: 18. Okt 2007 11:36

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Beitrag 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
Zuletzt geändert von Wambolo am 21. Dez 2009 11:49, insgesamt 1-mal geändert.

marcel_b
Nerd
Nerd
Beiträge: 600
Registriert: 31. Okt 2006 17:04
Kontaktdaten:

Re: Aufgabe 8.1 Vererbung und Kombinierbarkeit

Beitrag von marcel_b »

Ihr braucht keine. Kommt heute bis 15:30 vorbei, wenn es euch nicht klar wird.

Antworten

Zurück zu „Archiv“