AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wo gehören die Variablen hin?

Ein Thema von Bjoerk · begonnen am 10. Mär 2012 · letzter Beitrag vom 11. Mär 2012
Antwort Antwort
Seite 1 von 2  1 2   
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

Wo gehören die Variablen hin?

  Alt 10. Mär 2012, 21:08
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;
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.068 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Wo gehören die Variablen hin?

  Alt 10. Mär 2012, 21:18
schon mal unter Delphi class , private, public geggogelt ?

zB.

http://de.wikibooks.org/wiki/Program...ascal:_Klassen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.509 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Wo gehören die Variablen hin?

  Alt 10. Mär 2012, 21:31
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Wo gehören die Variablen hin?

  Alt 10. Mär 2012, 21:39
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.
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#5

AW: Wo gehören die Variablen hin?

  Alt 10. Mär 2012, 21:48
class var ? Seit wann gibt's die denn? [...]
Seit Delphi 7.
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.323 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Wo gehören die Variablen hin?

  Alt 10. Mär 2012, 21:54
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.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Wo gehören die Variablen hin?

  Alt 10. Mär 2012, 21:57
Peinlich, wußte ich nicht. Hab nur gelegentlich mal class procedures und class functions benutzt: Thanx!
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Wo gehören die Variablen hin?

  Alt 10. Mär 2012, 22:04
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.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Wo gehören die Variablen hin?

  Alt 11. Mär 2012, 01:52
Bernhard, dein Link konnte mir jetzt doch weiterhelfen. Bin beim Stöbern auf das gestoßen. Das passt.

Gruß
Thomas
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#10

AW: Wo gehören die Variablen hin?

  Alt 11. Mär 2012, 08:04
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf