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.
Darf man machen was man will?
Hey,
hab ne Frage wie genau muss man sich an die Vorgabe halten.
Ist es beispielsweise erlaubt neben dem vorgegeben UML-Diagramm und den darin enthaltenen Klassen weitere Klassen, Interfaces, etc. hinzuzufügen?
Ist es auch erlaubt Klassennamen oder ähnliches umzubenennen?
Beispielsweise würde ich Coordinate in ein Interface herausziehen und die Implementierung in einer PhotoCoordinate Implementierung hinterlegen.
Das würde mir so besser gefallen, da es mehr dem prinzip “programmiere auf eine Schnittstelle und nicht auf eine konkrete Implementierung” entspricht!
Und generell die Frage, wäre es erlaubt beispielsweise die getLatidunialDistance-Methode bzw. dessen Algorithmus in einer Strategie, Visitor oder sogar Service auszulagern und dann via DI-Container oder event-based-architektur einzubinden?
Hier wäre meiner Meinung nach ein besseres SRP gegeben, da die einzelnen “Algorithmen-Klassen” wirklich nur für ihre Aufgabe zuständig wären und Coordinate dann zum Mergen/Zusammenfassen dieser Algorithmen…
Naja was ich damit nochmal Fragen wollte ist, ob man wirklich das Design so umgestalten darf wie man will?
Natuerlich.
Auf eigenes Risiko. Sie wollen ja noch von Ihren Kollegen und Kolleginnen verstanden werden. Zum anderen muessen Sie nicht gleich alle Hausaufgaben auf einmal loesen. Es kommt ja noch einiges. Wenn wir eine Entwurfsstruktur vorgeben, so wollen wir meist schon, dass Sie dabei bleiben.
Uebertreiben Sie es nicht. Warum brauchen Sie eine separate Schnittstelle, wenn nur eine (Implementierungs-)Klasse nachgesucht ist? Nicht jeder Pfeil im Koecher resp. Werkzeug muss immer gleich angewendet werden.
Viel Erfolg!