Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Anzahl Klassenvariablen (https://www.delphipraxis.net/184103-anzahl-klassenvariablen.html)

tshubaka 26. Feb 2015 12:12

Anzahl Klassenvariablen
 
Hallo Delphi Freunde,
meine Frage, wie viele klassenvariablen kann man in einem Objekt anlegen privat und public?
soll man die nach datentyp sortieren?

Delphi-Quellcode:
  private
    { Private-Deklarationen }
    wochMt : string;
    anzok : integer;
    anz : integer;
    anzok1 : Integer;
    anznotok : integer;
    fromweek : integer;
    toweek : integer;
    Aktuellewoche : word;
    maxY : integer;
    merkeindex : integer;
    WordApp : OleVariant;
    selec: OleVariant;
    wochenDaStart : array [1..53] of double;
    monatsDaStart : array [1..12] of double;
    wochenarrOTD1 : array [1..53] of double;
    wochenarrOTD : array [1..53] of double;
    monatsarrOTD1 : array [1..12] of double;
    monatsarrOTD : array [1..12] of double;
    wochenOTDGut1 : array [1..53] of double;
    wochenOTDBad1 : array [1..53] of double;
    monatsOTDGut1 : array [1..12] of double;
    monatsOTDBad1 : array [1..12] of double;
    wochenOTDGut : array [1..53] of double;
    wochenOTDBad : array [1..53] of double;
    monatsOTDGut : array [1..12] of double;
    monatsOTDBad : array [1..12] of double;
    monatsCYi : array [1..12] of double;
    wochenCYi : array [1..53] of double;
    monatsFAL : array [1..12] of double;
    wochenFAL : array [1..53] of double;

    monatsFPY : array [1..12] of double;
    monatsYield : array [1..12] of double;
    monatsGold : array [1..12] of double;
    monatsSuco : array [1..12] of double;
    monatsPPM : array [1..12] of double;
    monatsCATs : array [1..12] of double;
    monatsAuditint : array [1..12] of double;
    monatsDLZ : array [1..12] of double;
    monatsWIP : array [1..12] of double;
    monatsCutRF : array [1..12] of double;
    monatsCutFO : array [1..12] of double;
    monatsCutMeter : array [1..12] of double;

    monatsDp11  : array [1..12] of double;
    monatsDp2  : array [1..12] of double;

    wochenFPY : array [1..53] of double;
    wochenYield : array [1..53] of double;
    wochenGold : array [1..53] of double;
    wochenSuco : array [1..53] of double;
    wochenPPM : array [1..53] of double;
    wochenCATs : array [1..53] of double;
    wochenAuditint : array [1..53] of double;
    wochenCutRF : array [1..53] of double;
    wochenCutFO : array [1..53] of double;
    wochenCutMeter : array [1..53] of double;

    wochenCogi : array [1..53] of double;
    wochenDLV : array [1..53] of double;
    wochenCNF : array [1..53] of double;
    wochenDp11  : array [1..53] of double;
    wochenDp2  : array [1..53] of double;

    wochenToolProd : array [1..53] of double;
    wochenToolUnProd : array [1..53] of double;
    wochenToolProz : array [1..53] of double;

    monatsToolProd : array [1..12] of double;
    monatsToolUnProd : array [1..12] of double;
    monatsToolProz : array [1..12] of double;

    monatsPlatSales : array [1..12] of double;
    monatsPlatBudget : array [1..12] of double;
    monatsPlatCurGold : array [1..12] of double;
    monatsPlatCurSuco : array [1..12] of double;
    monatsPlatOTD : array [1..12] of double;
    monatsPlatBatch : array [1..12] of double;

    monatsTPTTotal : array [1..12] of double;
    monatsTPTHydro : array [1..12] of double;
    monatsTPTDreher : array [1..12] of double;

    wochenWSPGut : array [1..53] of double;
    wochenWSPBad : array [1..53] of double;
    wochenWSPPercent : array [1..53] of double;
    monatsWSPGut : array [1..12] of double;
    monatsWSPBad : array [1..12] of double;
    monatsWSPPercent : array [1..12] of double;

    wochenTPTTotal : array [1..53] of double;
    wochenTPTHydro : array [1..53] of double;
    wochenTPTDreher : array [1..53] of double;
    wert1: double;
    wert2: double;
    hWindow: HWND;
    merkdienummer : integer;
    wowarer : Integer;
    plantindex: Integer;
    merkewoche: Boolean;
    elementeCS: array of string;
  public
    werk1: Integer;
    werk2: Integer;
    werk3: Integer;
    division1: Integer;
    division2: Integer;
    division3: Integer;
    division4: Integer;
    welcherint: Integer;
    welcheSerie: Integer;
    jahr : word;
    extwarengruppe1: string;
    extwarengruppe2: string;
    extwarengruppe3: string;
    extwarengruppe4: string;
    superv1 : string;
    superv2 : string;
    superv3 : string;
    superv4 : string;
    superv5 : string;
    superv6 : string;
    superv7 : string;
    superv8 : string;
    superv9 : string;
    superv10 : string;
    superv11 : string;
    superv12: string;
    Anwender : string;
    Rolle: string;
    elementstr: string;
    superstr : string;
sind das schon zu viele?

gruss
Peter

Nersgatt 26. Feb 2015 12:15

AW: Anzahl Klassenvariablen
 
Rein technisch wird das nicht zu viel sein.
Aber die Übersichtlichkeit ist doch bedenklich, oder?

mm1256 26. Feb 2015 12:17

AW: Anzahl Klassenvariablen
 
Zu viele werden es wohl nicht sein, aber ich würde die Variablen in Records zusammenfassen weil übersichtlicher, und schneller/sicherer initialisiert (mit FillChar)

JasonDX 26. Feb 2015 12:33

AW: Anzahl Klassenvariablen
 
Wenn du so viele Klassenvariablen hast, solltest du überlegen ob deine Klasse nicht zu viele Aufgaben erledigt oder Daten zu grob klassifiziert handhabt. Wenn du Code willst, bei dem dein Nachfolger nicht mit einer Kettensäge vor deiner Haustür auftaucht, würde ich einen Schritt zurück machen und die Struktur und Aufteilung der Klasse überdenken.

DeddyH 26. Feb 2015 12:33

AW: Anzahl Klassenvariablen
 
Zusätzlich könnte man noch die Arrays typisieren
Delphi-Quellcode:
type
  TDblArray53 = array [1..53] of double;
und diese Typen dann verwenden. Man stelle sich nur vor, die Dimensionen ändern sich irgendwann, dann tippt man sich ja wund und übersieht am Ende immer noch welche (DRY).

himitsu 26. Feb 2015 13:23

AW: Anzahl Klassenvariablen
 
Zitat:

Zitat von DeddyH (Beitrag 1291617)
Zusätzlich könnte man noch die Arrays typisieren
Delphi-Quellcode:
type
  TDblArray53 = array [1..53] of double;

Ich würde das weiter treiben.

Vieles mit den selben Array-Grezen (monate, wochen, ...) und gemeinsamen Thema auslagern.

Delphi-Quellcode:
WochenIrgendwas: array [1..53] of TDiesUndDasRecord;


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 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