![]() |
Guter Programmierstil
Hallo zusammen,
ich habe eine eher konzeptionelle Frage. Angenommen ich habe eine Applikation, die eine Liste von Strings an eine Klasse übergeben soll. Wie wäre da die beste Herangehensweise. Variante 1: Ich kann in der Klasse eine function definieren, die Listen entgegennehmen kann.
Delphi-Quellcode:
Variante 2:
function MYCLASS.Add(URL:TStringlist): integer;
Andererseits kann ich auch eine function schreiben, nur Strings entgegen nehmen kann
Delphi-Quellcode:
und würde die Daten in einer Schleife im Hauptprogramm (nicht in MYCLASS) übergeben.
function MYCLASS.Add(value:String): integer;
z.B.
Delphi-Quellcode:
Variante 3:
while (ListView1.Items.Count)>i do
begin; Class.Add(ListView1.Items.Item[i].Caption) inc(i); end; das gleiche wie Variante 2 und Variante 1 zusammen, jedoch wird die Schleife in die Klasse MYCLASS ausgelagert. Mein Favorit ist die Variante 2.Der Vorteil der Variante 2 ist, ich kann die Fehlerbehandlung in mein Hauptprogramm auslagern und kann damit auch bei einzelnen Fehler direkt reagieren. Weiterhin habe ich die Möglichkeit, das gerade bei langwierigen Operationen per
Delphi-Quellcode:
die Applikation nicht wie abgestützt aussieht und noch reagiert. Durch das Auslagern der Fehlerbehandlung ist der Code zudem wiederverwendbar.
application.ProcessMessages
Was haltet Ihr davon? |
Re: Guter Programmierstil
Hi,
bezogen auf Deine Klasse wäre es guter Programmierstil, beide Möglichkeiten zu implementieren. Welche Du dann im Hauptprogramm benutzt hängt dann von den Datenstrukturen dort ab. Wenn aber andere Leute Deine Klasse auch noch benutzen wollen, können Sie frei entscheiden was für sie am besten ist. Dadurch wird deine Klasse eben universeller verwendbar. Der Einsatz von Application.ProcessMessages innerhalb der Klasse ist nicht zu empfehlen. Je nach Einsatzgebiet kann das Hauptprogramm dadurch ganz schön durcheinander geraten. Gruss Thomas. |
Re: Guter Programmierstil
Einmal ein einzelnes Item mit Add reinwerfen und möglicherweise zusätzlich einen Container mit AddRange reinwerfen. ;)
In AddRange kann man dann solche Optimierungen wie BeginUpdate/EndUppdate einbauen... |
Re: Guter Programmierstil
Danke thkerkmann und Elvis.
@Elvis Im Prinzip habe ich dich verstanden, jedoch bei BeginUpdate/EndUppdate hängt es. :gruebel: Hast du mir auf die Sprünge helfen? Danke! |
Re: Guter Programmierstil
Dann schlag die Begriffe mal in der Delphi Hilfe nach, dann verstehst du, was gemeint ist.
|
Re: Guter Programmierstil
Statt TStringList sollte man TStrings nehmen. Damit hat man dann die Auswahl unter vielen abgeleiteten Klassen die man uebergeben kann. TStringList ist natuerlich mit dabei, aber es gehen dann auch mehrere Klassen die in der Ableitungshierarchie neben TStringList stehen.
Wer ProcessMessages benutzt hat schon verloren wenn es um Programmierstil geht. Ein Thread sollte her. |
Re: Guter Programmierstil
Zitat:
|
Re: Guter Programmierstil
Zitat:
|
Re: Guter Programmierstil
Der Extraaufwand lohnt sich immer!
Ich habe letztens mal zwei Klassen geschrieben. Eine steuert bei unserem IO-Warrior 32x8 echte LEDs an die andere implementiert ein Game of Life und gibt es mit Hilfe der anderen Klasse aus. Jetzt habe ich die Ausgabeklasse fuer ein anderes Geraet umgeschrieben und das Game of Life laeuft jetzt mit 320x240. Alles in weniger als einer halben Stunde geaendert. |
Re: Guter Programmierstil
Zitat:
...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz