Ex 02

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

Ex 02

Beitrag von marcel_b »

Hi,

das eAssignment Projekt mit dem "LaneManager2000" sowie der einfachen Musterlösung für die Berechung der Score befindet sich im Repository.

Das Aufgabenblatt zu Übung 2 sowie die Folien von heute können von der Schedule Seite heruntergeladen werden.

Die Verwendung der Musterlösung ist optional. Ihr könnt ebenso eure eigenen Lösung wiederverwenden und entsprechend an euer Design anpassen. Es gibt keine Vorgaben zu den Schnittstellen oder welche Entitäten in eurem System vorhanden sein muss.

[s]Nur die Klasse LaneManger2000 darf nicht angepasst werden, da sie nicht Teil eures Systems ist, sondern vom BowlingCenter-Betreiber vorgegeben wird.[/s]

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

Beitrag von marcel_b »

Nach Diskussion eines Lösungsvorschlags, darf auch die vorgegebene Klasse LaneManager2000 beliebig angepasst werden - muss aber verwendet werden um die Kegel neu aufzustellen.

Für das Design interessant: Wo kommt die Information das ein neuer Wurf stattgefunden hat in das System rein? Wir gehen davon aus, dass eine Lichtschranke am Ende der Bahn registriert, dass eine Kugel vorbeigerollt kommt...

Wie dieser Sensor an das System angebunden wird, kann von euch festgelegt werden. Eine Möglichkeit wäre den LaneManger entsprechend anzupassen, das dieser dem System mitteilt, dass ein Wurf stattgefunden hat (Callback). Hiermit ist nun also das Anpassen des LaneManager offiziell "erlaubt".

Evgeni
Windoof-User
Windoof-User
Beiträge: 39
Registriert: 1. Dez 2004 19:22

Beitrag von Evgeni »

marcel_b hat geschrieben:Nach Diskussion eines Lösungsvorschlags, darf auch die vorgegebene Klasse LaneManager2000 beliebig angepasst werden - muss aber verwendet werden um die Kegel neu aufzustellen.

Für das Design interessant: Wo kommt die Information das ein neuer Wurf stattgefunden hat in das System rein? Wir gehen davon aus, dass eine Lichtschranke am Ende der Bahn registriert, dass eine Kugel vorbeigerollt kommt...

Wie dieser Sensor an das System angebunden wird, kann von euch festgelegt werden. Eine Möglichkeit wäre den LaneManger entsprechend anzupassen, das dieser dem System mitteilt, dass ein Wurf stattgefunden hat (Callback). Hiermit ist nun also das Anpassen des LaneManager offiziell "erlaubt".
Gibt es eigentlich in Java Callback? Wenn ichs richtig verstehe eigentlich nicht :)bzw. nicht mit pointer auf funktionen wie C,C++ etc?

Benutzeravatar
apulix
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 152
Registriert: 21. Nov 2004 23:54
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von apulix »

Könntet ihr in Zukunft den Code bitte einrücken? Zu gutem Design gehört sicherlich auch gut formatierter Code und nicht:

Code: Alles auswählen

public void add(final int pins) {
this.itsScorer.addThrow(pins);
adjustCurrentFrame(pins);
}
Alumni-Netzwerk der TU Darmstadt: http://alumni.tu-darmstadt.de/ (auch für Studierende)

Benutzeravatar
apulix
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 152
Registriert: 21. Nov 2004 23:54
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von apulix »

jeff hat geschrieben:Gibt es eigentlich in Java Callback? Wenn ichs richtig verstehe eigentlich nicht :)bzw. nicht mit pointer auf funktionen wie C,C++ etc?
Also ohne weiter darüber nachzudenken, wie das jetzt implementiert werden soll (da gibt es mit Sicherheit zahlreiche Möglichkeiten), der LaneManager kann einfach eine Referenz auf das "System" erhalten und da eine Methode a la "wurf(int)" aufrufen, wann immer die "Lichtschranke" unterbrochen wird.
Alumni-Netzwerk der TU Darmstadt: http://alumni.tu-darmstadt.de/ (auch für Studierende)

Jannik
Mausschubser
Mausschubser
Beiträge: 44
Registriert: 20. Okt 2005 12:01
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von Jannik »

apulix hat geschrieben:Könntet ihr in Zukunft den Code bitte einrücken? Zu gutem Design gehört sicherlich auch gut formatierter Code und nicht:

...
Richtiges Argument, kleiner Tipp: Projekt im Package Explorer auswählen, Rechtsklick, Source, Format. Das Ergebnis ist zwar nicht ganz so hübsch (macht zu viele Zeilenumbrüche für ein Widescreen display, etc.), aber man ist unabhängig vom Wohlwollen der "Vorarbeiter" ;)

Zu den Callbacks: Sowas macht man in Java über späte Bindung / Polymorphie. Stichwort "Observer" (auch wenn die Observable-Implementierung von Java stinkt, würde lieber meine eigenen schreiben).
RC_KILL_CHILDREN="yes"

Evgeni
Windoof-User
Windoof-User
Beiträge: 39
Registriert: 1. Dez 2004 19:22

Beitrag von Evgeni »

apulix hat geschrieben:
jeff hat geschrieben:Gibt es eigentlich in Java Callback? Wenn ichs richtig verstehe eigentlich nicht :)bzw. nicht mit pointer auf funktionen wie C,C++ etc?
Also ohne weiter darüber nachzudenken, wie das jetzt implementiert werden soll (da gibt es mit Sicherheit zahlreiche Möglichkeiten), der LaneManager kann einfach eine Referenz auf das "System" erhalten und da eine Methode a la "wurf(int)" aufrufen, wann immer die "Lichtschranke" unterbrochen wird.
Klar, da wandern wir aber schon Richtung MVC :) bzw. mit Interfaces und eben References wie z.B. hier beschrieben:
http://www.javaworld.com/javaworld/java ... tip10.html

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

Beitrag von marcel_b »

Evgeni hat geschrieben: Klar, da wandern wir aber schon Richtung MVC :) bzw. mit Interfaces und eben References wie z.B. hier beschrieben:
http://www.javaworld.com/javaworld/java ... tip10.html
Petze :) Ja, das ist eine mögliche Richtung. Aber die kennen wohl schon so viele, so dass wir das nicht wahnsinnig vertiefen werden. Wir gehen da später eher in eine andere...

Was die Definition eines Callbacks angeht: Die C Definition ist sicherlich für Java nicht genau passend (da Java Referenzen nicht auf Funktionen sondern auf Objekten besitzt). Man darf/kann aber guten Gewissens Mechanismen wie Listener/Observer durchaus mit Callbacks in Verbindung bringen... Objekt A enthält eben keine Referenzen auf Funktionen sondern auf Objekte - schließlich ist man in Java auch Objekt-orientiert :)

Was die Formatierung angeht:
Formatierter Code ist hübsch - und wird im Regelfall auch beim Speichern bei Eclipse automatisch (Save Actions in Eclipse 3.3) durchgeführt. Hier haben wir schnell die Lösung aus dem Lab noch schnelle hinzugefügt - die war wohl nicht formatiert. Aber wie oben schon gesagt: Projekt auswählen und Format drücken, dann hat jeder den Code unmittelbar in seinem eigenen Stil... - dann klappts auch mit dem WideScreen - (Zeilenumbruch erst bei Zeichen 120 anstatt 80 :) )

Benutzeravatar
apulix
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 152
Registriert: 21. Nov 2004 23:54
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von apulix »

marcel_b hat geschrieben:Ja, das ist eine mögliche Richtung (MVC). Aber die kennen wohl schon so viele, so dass wir das nicht wahnsinnig vertiefen werden. Wir gehen da später eher in eine andere...
Das kann ich leider nur teilweise bestätigen. Bei uns wurde das bisher nur in GDI1 (im WS03/04) vorgestellt (auf einer Folie) und zwar so glorreich, dass die Tutoren allen volle Punktzahl auf die MVC-Aufgabe geben mussten, weil es keiner verstanden hat. Und zwar ist das Prinzip wohl bekannt, aber die genau Implementierung in Java zu verdeutlichen wäre sehr schön.

Ich persönlich hadere noch mit den Beziehungen im MVC und damit, wie Controller genau implementiert werden sollen (jede Komponente einen eigenen Controller? vll. noch f. jeden Typ (Maus, Tastatur) einen eigenen Controller?). Ich vermute, dass es da der Mehrheit nicht anders geht.

IMHO ist hier eben eine Vertiefung gefragt, das Prinzip kann jeder bei Wikipedia nachlesen und hat es evtl. auch schon gemacht.
Alumni-Netzwerk der TU Darmstadt: http://alumni.tu-darmstadt.de/ (auch für Studierende)

Benutzeravatar
kaesebrot
Neuling
Neuling
Beiträge: 10
Registriert: 22. Okt 2007 22:59
Kontaktdaten:

Beitrag von kaesebrot »

Hallo,

ich verstehe folgende Teilfrage auf dem Übungsblatt leider nicht so recht. Kann mir jemand vieleicht einen Hinweis geben, was genau dort gefragt ist?

"Worauf wurden die Modularitätskriterien (modular-* criteria) definiert?"


viele Grüße,
Käse
Joghurt schmeckt nach Joghurt

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

Beitrag von marcel_b »

Worauf werden diese Kriterien angewendet? 'Was' muss diese Kriterien erfüllen? Code, Prozess, Design, Team... sowas ist unter 'was' bzw. 'worauf' zu verstehen.

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

Beitrag von marcel_b »

Hi,

in den nächsten Minuten gehen die Ergebnisse zur Ex 02 per Mail an euch raus. Leider habe ich noch keine Möglichkeit den abgelehnten Gruppen den Grund für die Ablehnung mitzuteilen. Wenn ihr die Ablehnung nicht ad hoc nachvollziehen könnt, schaut bitte zuerst nach, was auf dem Server liegt. In den meisten Fällen ist die Hausübung nur unvollständig bearbeitet worden - daher gibt es dafür auch keinen Bonus.

Viele Grüße
Marcel

Antworten

Zurück zu „Archiv“