Programmiertechniken

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,
ist es eigentlich besser Programme zu entwickeln, bei denen eine Funktion (zB innerhalb einer Klasse) die naechste und diese wieder die naechste usw aufruft, oder sollte man eher versuchen von einem bestimmten "Level" aus (in der Klasse) eine Funktion nach der anderen aufzurufen?

Angenommen zB ich habe eine Klasse FileIO und habe dort die Funktionen read(), write(), parse() - sollte also read() die Funktion parse() aufrufen und parse() dann write() - oder sollte ich zB vom Konstruktor aus versuchen read() dann parse() und dann write() aufzurufen?

Ich kann mir zwar vorstellen das letzteres sinnvoller ist, da man unabhaengiger ist, man kann zB dann auch zentral Entscheidungen einbauen, ob man parse() ueberhaupt aufrufen will oder gleich direkt write(), aber ich wollte mal die Erfahrenen hier fragen, ob es da Faustformeln/Tendenzen/Strategien gibt, wie man da am besten entwirft. Soll nicht nur fuer so read/write Sachen sein, das war nur'n Bsp.
 

dotlens

Top Contributor
es ist bestimmt sinvoller die methoden nicht so sehr zu verschachteln. dadurch wird alles übersichtlicher, einfacher modifiziefbar und nicht zuletz wiederverwendbarer.
 
G

Guest

Gast
Zerlege Dein Problem ist verschiedene Aufgaben, die Du in Methoden implementieren kannst.

Z.B. IO-Zugriff in read() / write()
interpretieren vom dem was da gelesen wurde in parse(),
Ausgabe eines Ergebnisses in ausgabe(), etc

Du wirst sehen, dass Du übergeordnete Methoden hast, z.B. parse() und ausgabe() und untergeordnete Methoden wie read() und write().

Die rufst nun die übergeordneten Methoden auf, die dann ihrerseits die untergeordneten Methoden aufrufen. Also z.B. parse () ruft read() auf und ausgabe() ruft write() auf.

Rufe aber nicht von untergeordneten Methoden übergeordnete auf, also nicht von read() parse() aufrufen.

Falls Du bei der Implementierung feststellst, dass eine Methode zu kompliziert oder zu unübersichtlich wird, teile sie auf in mehrere Methoden, die jeweils einen Teilaspekt bearbeiten, usw.

Im Konstrutor würde ich nix ausführen, sondern erstmal das Objekt initialisieren und danach eine Methode im Objekt aufrufen, die die Arbeit übernimmt.

Wenn Du die Methoden einfach hälst und das Problem gut auf Methoden aufgeteilt hast und jede Methode nur eine Aufgabe übernimmt, kannst Du später die Methoden in anderen Bereichen Deiner Anwendung weiterverwenden.
 
Status
Nicht offen für weitere Antworten.

Oben