Zitat von
Satty67:
Was meinst Du mit jeder Funktion? Alle zukünftigen Funktionen/Proceduren Deiner Klassen und Hilfsrotinen?
Ja ich rede von meinen eigenen Klassen.
Zitat von
Satty67:
Also stelle mir das sehr übel vor (sofern ich das richtig verstanden habe)... Raterei, welche Werte die Funktion braucht, da keine sprechenden Parameter... haufenweise Prüfungen in den Funktionen (Reihenfolge der Parameter, Wertegültigkeit, Anzahl etc.)
Jede Transporterklasse wäre für die entsprechende Funktion zugeschnitten.
Prüfungen können direkt innerhalb der Set-Methode der Transporter-Klasse durchgeführt werden.
Der Zugriff innerhalb der Funktion läuft dann genauso, als würdest du die Werte als Parameter übergeben.
Zitat von
Satty67:
Wenn eine Funktion mehr als 3 Parameter hat und häufiger aufgerufen werden soll, dann entwerfe ich einen ParameterRecord, der übergeben wird (vgl.
WinApi)
In Prinzip ist es nichts anderes als was ich gerade beschreibe.
Edit:
Ein Beispiel, worum es mir eigentlich geht.
Stellt euch vor ihr habt eine Klasse in der es eine Funktion gibt um
TCP Netzwerkverbindungen aufzubauen. Diese Funktion erhält einen Parameter von einer Klasse, die
TCP Verbindungsinformationen als properties besitzt(
IP bzw. Hostname, Port, usw.)
Ihr entwickelt irgendwann eine neue Klasse, diese Klasse braucht weswegen auch immer auch diese Informationen. Statt in beiden Funktionen eine Liste an Parametern einzubauen, wäre es nun möglich bei beiden Funtionen ein Objekt dieser Transportklasse zu übergeben.
Natürlich geht auch der Weg, daß man solch eine Funktion als eine neue Klasse konzipiert wird und diese Parameter als properties dieser Klasse zur Verfügung stellen könnte.
Auch ein schöner Weg wie ich finde.
Es gibt halt mehrere Wege. Ich sage nicht der Weg ist gut oder schlecht, sondern möchte gerne Meinungen hören.