Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Wo gehören die Variablen hin? (https://www.delphipraxis.net/167043-wo-gehoeren-die-variablen-hin.html)

Bjoerk 10. Mär 2012 20:08

Wo gehören die Variablen hin?
 
Crosspost Delpi-Treff

Ich stelle zurzeit meine Software von prozedural nach OO um. Dabei habe ich oft folgende Situation, mit der ich nicht weiß, wie ich sie handhaben soll.

Wäre dankbar für eine Idee, mir fällt nix Gescheites ein..

Situation: Die Units werden bisher mit globalen Variablen über die uses Klausel versorgt.

Delphi-Quellcode:
unit unit1;

uses
  unitA, unitB, unitC;

var
  O: TKlasse;
  u, v, w: ...

procedure TForm1.Machwas;
begin
  // Globale Variable x aus unitA;
  // Globale Variable y aus unitB;
  // Globale Variable z aus unitC;
  Setzt u, v
  Führt O.Machwas aus
  Benötigt die von O.Machwas veränderten Werte x, y, z, u, v zur weiteren Berechnung
end;


unit TKlasseUnit;

uses
  unit1, unitA, unitB, unitC;

  // Globale Variable x aus unitA;
  // Globale Variable y aus unitB;
  // Globale Variable z aus unitC;
  // Globale Variablen u, v aus unit1;

procedure TKlasse.Machwas;
begin
  // benötigt und verändert x, y, z, u, v
end;

bernhard_LA 10. Mär 2012 20:18

AW: Wo gehören die Variablen hin?
 
schon mal unter Delphi class , private, public geggogelt ?

zB.

http://de.wikibooks.org/wiki/Program...ascal:_Klassen

himitsu 10. Mär 2012 20:31

AW: Wo gehören die Variablen hin?
 
Variablen gehören da hin, wo sie verwendet werden.

Wird sie lokal nur in einer Funktion/Prozedur/Methode verwendet, dann gehört sie in diese Funktion rein.

Wird sie innerhalb einer Klasse verwendet, dann gehört sie dort hin, also in die Klassendeklaration. (wie Bernd erwähnt hat, z.B. in private oder protected)

Wird sie global benötigt, würde man sie global deklarieren, aber Global ist nicht global.
Wird sie in einer Klasse erstell/freigegeben, denn gehört sie in die entsprechende Klasse (private/protected) und man veröffentlicht sie z.B. über ein public-Property.
Notfalls gibt es noch Class-Var und Class-Property, wenn diese Variable zwar an eine Klasse, aber nicht an eine bestimmte Objekt-Instanz gebunden ist.

Bjoerk 10. Mär 2012 20:39

AW: Wo gehören die Variablen hin?
 
class var ? Seit wann gibt's die denn?

Himitsu, wenn ich zwei Klassen habe, die Daten austauschen, wo machst du die Variablen dann hin? Egal ??? Da muß es doch Prinzipien geben ?

Bernard, ich hab schon einige Klassen geschrieben und ich weiß auch was eine property ist, das ist hier nicht das Problem.

vagtler 10. Mär 2012 20:48

AW: Wo gehören die Variablen hin?
 
Zitat:

Zitat von Bjoerk (Beitrag 1155872)
class var ? Seit wann gibt's die denn? [...]

Seit Delphi 7.

Lemmy 10. Mär 2012 20:54

AW: Wo gehören die Variablen hin?
 
Zitat:

Zitat von Bjoerk (Beitrag 1155872)
Himitsu, wenn ich zwei Klassen habe, die Daten austauschen, wo machst du die Variablen dann hin? Egal ??? Da muß es doch Prinzipien geben ?

Klar gibts dafür Prinzipien - aber dazu müsste man wissen was denn die Klassen machen und was die Daten für eine Bedeutung haben. Ggf. kann es auch sein, dass die Daten in eine dritte Klasse gehören - pauschal lässt sich das aber nicht sagen.

Bjoerk 10. Mär 2012 20:57

AW: Wo gehören die Variablen hin?
 
:oops: Peinlich, wußte ich nicht. Hab nur gelegentlich mal class procedures und class functions benutzt: Thanx!

Bjoerk 10. Mär 2012 21:04

AW: Wo gehören die Variablen hin?
 
Lemmy, das Ding ist aus den Neunzigern. Ursprünglich war alles prozedural. Dann sind mit der Zeit einige nicht visuelle Komponenten hinzugekommen, die alle die gleichen Daten brauchen.

Bjoerk 11. Mär 2012 00:52

AW: Wo gehören die Variablen hin?
 
Bernhard, dein Link konnte mir jetzt doch weiterhelfen. Bin beim Stöbern auf das gestoßen. Das passt.

Gruß
Thomas

Furtbichler 11. Mär 2012 07:04

AW: Wo gehören die Variablen hin?
 
Die Frage ist doch nicht die, wo die Variablen hingehören, sondern eher die, wo die Funktionalität hingehört. Dann ergibt sich der Rest von ganz alleine.

Die hier gegebenen Antworten "dort, wo sie gebraucht werden"

In deinem Beispiel fragt man sich, was die TKlasse mit den Werten x,y,z,u,v denn 'macht'. Und weshalb die in anderen Units deklariert sind bzw. wurden.

Ach, so -wuppdiwupp- vom prozeduralen auf den objektorientierten Ansatz umzuschwenken, ist dann doch nicht ganz so einfach, vor allen Dingen dann, wenn man solche Fragen stellt. Da scheint dann das Grundverständnis zu fehlen. Macht aber nichts, das ging uns allen so.

Also: Basiswissen aneignen, Bücher schmöckern, die Prinzipienm Stärken und Schwächen von OOP verstehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 Uhr.
Seite 1 von 2  1 2      

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