Frage zur CW03-Homework

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Frage zur CW03-Homework
Hallo,

mir ist nocht ganz klar, an welcher Stelle man in Wahlzeit ansetzen soll, um seine eigene Erweiterung von Wahlzeit (in meinem Fall Cars) einzubringen.
Eher von ganz oben im Package App eine neue Klasse Cars implementieren die Wahlzeit extendet und dann entsprechend alle Vererbungen weiter runter implementieren?
Oder reicht eine Ersetzung der Singletons in ModelMain und PhotoManager durch die Spezialisierungen CarPhotoFactory und CarPhotoManager?

Vielen Dank.

Beste Grüße
Johannes Schilling


Hi,

es reicht eine Ersetzung der Singeltons aus.
Da PhotoFactory.getInstance() und PhotoManager.getInstance() an mehreren Stellen aufgerufen wird, gibt es hier zwei naheliegende Möglichkeiten.
Entweder man ersetzet an jeder Stelle die generische PhotoFactory und den PhotoManager durch die domänenspezifischen Variante, oder man gibt in den jeweiligen getInstance() Methoden die domänenspezifisch Varianten zurück (siehe Code-Snippet).

PhotoFactory {
...
private static final PhotoFactory instance = new MyDomainPhotoFactory();
...
}

PhotoManager {
...
protected static final PhotoManager instance = new MyDomainPhotoManager();
...
}

Alles klar, vielen Dank!

Eine weitere Frage:
In welchem Umfang soll Photo getestet werden? Photo bietet ja 41 Methoden als Schnittstelle an. Ich kann mir nicht vorstellen, dass die Hausaufgabe darauf abzielt, 41 Methoden zu testen?


Bzgl. Tests: Gemeint ist, dass Sie testen, was Sie neu machen. Bzgl. Photo also Ihre Änderungen fuer die Location / Coordinate Klassen.