Hi, erstmal.
Bin neu hier, lese zwar schon eine Weile mit, aber hatte mich bis jetzt noch nicht angemeldet , ist ja als student trotzdem recht interessant . Nun hab ich aber auch selber eine Frage .
Und zwar habe ich die Aufgabe "Dokumente" in einem "Drucker" zu Verwalten. Dabei geht es nicht darum tatsächlig zu drucken, sondern lediglich um die Objektorientierung. Ich habe nun eine abstrakte Klasse "Dokument" von der die jeweiligen Klassen wie z.B Text,Tabelle ,Bild erben und die Klasse "Drucker" in der die Dateien gedruckt werden. Nun wird ja ein Bild quasi anders als ein Text gedruckt.
Mein ansatz war, ich erstelle die Methode print(Dokument a) in der Klasse "Drucker", mit der jeweils geschaut wird um welches Dokument es sich handelt und rufe daraufhin die richtigen Druckmethoden auf (die auch in der Klasse Drucker sind). Beispiel :
print ( Dokument a )
{
if(a.instanceof Bild)
printBild();
.....
}
Nun haben viele andere den Ansatz in die Klasse "Dokument" eine abstrakte Methode print() zu erstellen, in der das richtige Verhalten in den Subklassen ausdefiniert wird, und dann quasi Polymorphismus im Drucker mit der Methode :
print(Dokument a)
{
a.print();
}
ausnutzen. Die Frage die sich nun jedoch stellt, ist es Objektorientiert korrekt, eine Methode "print" in der Datei selber zu erstellen ? Ich meine ein Dokument kann sich ja quasi nicht selber drucken und hat doch auch keine Ahnung davon wie es gedruckt wird oder ? Was wäre bei sowas denn im Sinne der Objektorientierung korrekt ?
Danke für die Antworten
Bin neu hier, lese zwar schon eine Weile mit, aber hatte mich bis jetzt noch nicht angemeldet , ist ja als student trotzdem recht interessant . Nun hab ich aber auch selber eine Frage .
Und zwar habe ich die Aufgabe "Dokumente" in einem "Drucker" zu Verwalten. Dabei geht es nicht darum tatsächlig zu drucken, sondern lediglich um die Objektorientierung. Ich habe nun eine abstrakte Klasse "Dokument" von der die jeweiligen Klassen wie z.B Text,Tabelle ,Bild erben und die Klasse "Drucker" in der die Dateien gedruckt werden. Nun wird ja ein Bild quasi anders als ein Text gedruckt.
Mein ansatz war, ich erstelle die Methode print(Dokument a) in der Klasse "Drucker", mit der jeweils geschaut wird um welches Dokument es sich handelt und rufe daraufhin die richtigen Druckmethoden auf (die auch in der Klasse Drucker sind). Beispiel :
print ( Dokument a )
{
if(a.instanceof Bild)
printBild();
.....
}
Nun haben viele andere den Ansatz in die Klasse "Dokument" eine abstrakte Methode print() zu erstellen, in der das richtige Verhalten in den Subklassen ausdefiniert wird, und dann quasi Polymorphismus im Drucker mit der Methode :
print(Dokument a)
{
a.print();
}
ausnutzen. Die Frage die sich nun jedoch stellt, ist es Objektorientiert korrekt, eine Methode "print" in der Datei selber zu erstellen ? Ich meine ein Dokument kann sich ja quasi nicht selber drucken und hat doch auch keine Ahnung davon wie es gedruckt wird oder ? Was wäre bei sowas denn im Sinne der Objektorientierung korrekt ?
Danke für die Antworten
Zuletzt bearbeitet: