AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Guter Programmierstil

Ein Thema von ozz · begonnen am 23. Mär 2006 · letzter Beitrag vom 26. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
ozz

Registriert seit: 26. Jun 2005
131 Beiträge
 
#1

Guter Programmierstil

  Alt 23. Mär 2006, 17:02
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.

function MYCLASS.Add(URL:TStringlist): integer; Variante 2:
Andererseits kann ich auch eine function schreiben, nur Strings entgegen nehmen kann

function MYCLASS.Add(value:String): integer; und würde die Daten in einer Schleife im Hauptprogramm (nicht in MYCLASS) übergeben.

z.B.

Delphi-Quellcode:
while (ListView1.Items.Count)>i do
  begin;
    Class.Add(ListView1.Items.Item[i].Caption)
    inc(i);
  end;
Variante 3:

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

application.ProcessMessages die Applikation nicht wie abgestützt aussieht und noch reagiert. Durch das Auslagern der Fehlerbehandlung ist der Code zudem wiederverwendbar.

Was haltet Ihr davon?
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Guter Programmierstil

  Alt 23. Mär 2006, 17:53
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.
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Guter Programmierstil

  Alt 23. Mär 2006, 18:17
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...
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
ozz

Registriert seit: 26. Jun 2005
131 Beiträge
 
#4

Re: Guter Programmierstil

  Alt 24. Mär 2006, 23:11
Danke thkerkmann und Elvis.

@Elvis
Im Prinzip habe ich dich verstanden, jedoch bei BeginUpdate/EndUppdate hängt es.
Hast du mir auf die Sprünge helfen?

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Guter Programmierstil

  Alt 24. Mär 2006, 23:22
Dann schlag die Begriffe mal in der Delphi Hilfe nach, dann verstehst du, was gemeint ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: Guter Programmierstil

  Alt 25. Mär 2006, 05:35
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.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: Guter Programmierstil

  Alt 25. Mär 2006, 10:31
Zitat von Robert Marquardt:
Wer ProcessMessages benutzt hat schon verloren wenn es um Programmierstil geht.
Warum? Ist doch toll, wenn der Benutzer die Daten löschen kann, während sie verarbeitet werden
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Guter Programmierstil

  Alt 25. Mär 2006, 10:43
Zitat von Robert Marquardt:
Wer ProcessMessages benutzt hat schon verloren wenn es um Programmierstil geht.
Ein Thread sollte her.
So krass würde ich das nicht sagen. Manchmal steht der Mehraufwand in keinem Verhältnis zu Oberfläche "absichern" + ProcessMessage. Es ist jedoch problematisch wenn ProcessMessage in einer Klasse/Funktion verwendet wird und dann der Aufruf absolut nicht weis das die Funktion "unterbrechend" arbeitet und damit ein mehrfacher Aufruf der Funktion möglich wäre.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#9

Re: Guter Programmierstil

  Alt 25. Mär 2006, 12:13
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.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Guter Programmierstil

  Alt 25. Mär 2006, 12:28
Zitat von Robert Marquardt:
Der Extraaufwand lohnt sich immer!
Ich weiß nicht warum, aber mit solchen Absolutismen habe ich immer Probleme Es gibt Programme, bei welchen es nur um eine Aufgabe (z.B. Datenkonvertierung) geht und ein "ruhiges" Einsetzen von Application.ProcessMessages ist da einfach effizienter und sinnvoller als gleich einen Thread dafür zu errichten.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz