Tach!
Wenn es bislang nur um "rohe" Klassen ging und keine einzige Zeile Code und auch nicht der Zusammenhang bekannt sind, so einzusteigen, hat schon was für sich.
Naja, mit der notwendigen Erfahrung sieht man schon mit wenigen Blicken, wenn ein bestimmte Programmierung sagen wir mal komisch aussieht, weil sie schon ohne die eigentliche Zielsetzung zu kennen, ganz erheblich von den Best-Practice-Empfehlungen/-Erfahrungen abweicht (und auch nicht revolutionär innovativ oder ähnliches ist).
Weiterhin hast du nur das direkte Problem erwähnt und nicht das Umfeld beschrieben. Da lässt sich schwer herauslesen, warum er so aussieht wie er jetzt ist und vor allem schlecht einschätzen, ob das zur Zielerreichung dienlich ist oder doch lieber was ganz anderes gemacht werden sollte. Deswegen kann es auch gut sein, dass Tipps für den Augenblick gut scheinen aber im großen Ganzen doch nicht optimal sind.
Genau. Wie kann man also erstmal reinpoltern ohne zu wissen um was es geht aber direkt alles in Grund und Boden stampfen?
Ich meinte damit eigentlich meine Vorschläge. Die gefallen dir vielleicht besser, weil sie mehr im Sinne deiner Lösung arbeiten, aber deine Lösung an sich bleibt damit immer noch in dem jetzigen Nicht-so-toll-Zustand. Manchmal ist es besser, die Lösung richtig auf den Prüfstand zu setzen, als sie sich - sagen wir mal - schönzusaufen. Das sieht dann zwar erstmal einwandfrei aus, aber die Kopfschmerzen kommen üblicherweise später auch noch.
Nein danke, darauf kann ich dann auch verzichten. Ich werde mir Svens Vorschläge/Hinweise anschauen aber hier hat sich der thread für mich erstmal erledigt.
Das ist schade, denn dadurch entgeht dir einiges an wertvollem Wissen. Wenn du deinen Groll noch etwas mehr glätten kannst, empfehle ich dir sehr, auf seine Rückfragen einzugehen.
Einige der Parameter des Objekts sind aber optional und wenn du sie nicht durch ein Array kapselst, dann ist es besser, wenn sie hinten stehen und die beiden anderen Pflichtparameter nicht behindern.
Und wann habe ich gesagt, dass ich das so mache? Bis jetzt waren alles nur Überlegungen wie ich es umsetzen _könnte_.
Unsere Vorschläge sind auch nur Überlegungen. Sie können nur so gut sein, wie die Fragestellung. Je mehr vom eigentlichen Problem bekannt ist, desto besser kann man darauf eingehen. Es gibt immer eine Theorie-Lösung, die am besten funktioniert. Und es gibt den Kompromiss, den man in der Praxis mitunter eingehen muss. Bestmögliche Kenntnis der Aufgabenstellung ist sehr hilfreich bei der Suche nach dem optimalen Weg.
Das kann man erst sagen, wenn man die Hintergründe kennt. Versuch mal bitte etwas konkreter und nicht so abstrakt zu beschreiben, was du vorhast.
Da gibt es nichts zu beschreiben weil ich (fast) nur mit rohen Klassen zum testen arbeite.Eine Funktion sammelt Informationen über verschiedene Model. Die Model erweitern alle eine Elternklasse, was aber nicht bedeutet, dass sie zwangsläufig die selben Konstruktoren besitzen müssen. Eine Andere Funktion bildet eine Schnittmenge mit den tatsächlich benötigten Models und initialisiert die entsprechenden Klassen.
Das ist leider nicht die Beschreibung des Problems sondern die Beschreibung eines Lösungsversuches. Vielleicht ergibt sich eine ganz andere Lösung, wenn man etwas weiter unten, nämlich am Klassenkonzept ansetzt.
"Cheeseburger" braucht zum Beispiel die Model "Cheese('gauda', '1 scheibe')" und "Burger('weizenbrötchen', '1 formfleisch', '2 scheiben gurken', 'zwiebeln')".
"Hamburger" braucht nur "Burger".
Ich nehme mal an, das war ein nicht sehr auf die Aufgabenstellung bezogenes Beispiel. Eine gute Programmarchitektur ist selten eine 1:1-Abbildung der Realität. Ein Programm arbeitet am besten, wenn man im Sinne der Philosophie der verwendeten Programmiersprache und mit allgemein bewährten Programmiermustern und Algorithmen das Problem zu lösen versucht und nicht die Realität in ein Programm zu pressen versucht. Und selbst wenn, dann arbeitet ein Burger-Restaurant nicht mit halbwegs vorgefertigten Burgern, weil die Gurken in der Zwischenlagerzeit das Brötchen aufweichen. Stattdessen kommen erst bei der "Endmontage" alle Zutaten einzeln aus den jeweiligen Töpfen. Tut mir leid, aber das ist nicht besonders brauchbar, um eine Lösung für deine eigentliche Aufgabenstellung zu finden. Selbst wenn sie derzeit groß mit "Test" überschrieben ist.
dedlfix.