# Maximale Größe einer Klasse



## Paladin (2. Mai 2006)

Hi Leute,

zur Zeit arbeite ich an einer Reporting Anwendung die für ein Unternehmen betriebswirtschaftliche Auswertungen erstellt. Alle Methoden zur Berechnung von verschiedenen Werten habe ich bis jetzt in einer einzigen Klasse gekapselt(Größe: ca. 20.000 Zeilen). 
Nun zu meiner Frage:

Wie groß sollte so eine Klasse maximal werden? Ich könnte mir vorstellen, dass es zu Lasten der Performance geht wenn die Klassen zu groß werden. Oder ist das egal?

Vielen Dank im voraus.

Gruß

Paladin


----------



## Jockel (2. Mai 2006)

Argh, bist du denn wahnsinnig? Eine Klasse die mehr als 1000 Zeilen hat, ist ein schlechtes Zeichen. Wenn Sie doch größer wird, musst du schon verdammt gute Gründe haben. (und diese auch dokumentieren)
Stell dir mal vor, du müsstes eine Klasse dieser Größe von einem anderen Programmierer editieren... Na herzlichen Dank. Da würde ich schonmal die Voodoo-Puppe rausholen.


----------



## AlArenal (2. Mai 2006)

Es gibt so ein paar Faustregeln, die auf Erfahrungen basieren und davon sprechen, dass eine Datei nciht mehr als rund 2000 Zeilen Code haben sollte. Wenn deine 20.000 Zeilen nicht zu 90% aus Kommentaren bestehen, tippe ich doch stark darauf, dass die Klasse in Hinsicht auf Objektorientierung einfach schlecht designt ist.


----------



## Paladin (2. Mai 2006)

Hi AlArenal und Jockel,

das Programm welches ich gerade schreibe macht Auswertungen für Heilberufler. Da es 23 verschiedene Kassenärztliche Vereinigungen gibt die auch alle verschiedene Berechnungsmethoden haben und dazu bestimmt noch einmal zu jeder Kasse ca 30 verschiedene Arztgruppen dazugehören kommt ein ganzer Haufen von verschiedenen Berechnungen zusammen die allerdings in den meisten Fällen nicht einer einzigen KV zuzuordnen sind. Also wäre meine Alternative für jede KV eine eigene Klasse zu schreiben die dann zwar kleiner wäre aber ich hätte das Problem, dass viele Methoden 23x vorhanden wären was natürlich vom Wartungsaufwand her nicht vertretbar wäre.

Denkt ihr, dass eine so große Klasse wie ich sie weiter oben beschrieben habe die Performance des Programms so weit einschränkt, dass man um eine Aufteilung der Klasse nicht herumkommt?

Gruß

Paladin


----------



## AlArenal (2. Mai 2006)

Wenn diese von dir beschrieben vielfach vorhandenen Methoden alle denselben INhalt hätten, wäre es sinnig diese in eine abstrakte Klasse zu packen. Dann hast du 23 Implementierungen, die alle nur noch das enthalten, was sie voneinander unterscheidet.

Das Problem einer einzelnen großen Klasse ist nicht Performanz, sondern dass sie der Grundidee der Objektorienterung in diesem Fall völlig widerspricht. Es ist gewissermaßen Spaghetticode; eine Vergewaltigung der Sprache...


----------



## Paladin (2. Mai 2006)

Hi AlArenal und Jockel,

vielen Dank für die verbale Prügel...:autsch:
Ich werde versuchen die Klasse irgendwie sinnig aufzuteilen.

Gruß

Paladin


----------



## AlArenal (2. Mai 2006)

*eisbeutelanreich*


----------



## Kawa-Mike (2. Mai 2006)

... und wenn dann die 24. dazukommt, brauchst du nur noch eine weitere Implementierung hinzuzufügen, anstatt Dich durch 20.000 Zeilen Code zu wühlen. D A N N wirst du den beiden erst richtig dankbar sein (-;


----------



## foobar (3. Mai 2006)

Guck dir mal das GOF-Pattern Toolkit(Abstractfactory) an, das könnte was für dich sein.

Viele Grüße
foobar


----------



## Ralf Ueberfuhr (3. Mai 2006)

AlArenal hat gesagt.:
			
		

> Es gibt so ein paar Faustregeln, die auf Erfahrungen basieren und davon sprechen, dass eine Datei nciht mehr als rund 2000 Zeilen Code haben sollte. Wenn deine 20.000 Zeilen nicht zu 90% aus Kommentaren bestehen, tippe ich doch stark darauf, dass die Klasse in Hinsicht auf Objektorientierung einfach schlecht designt ist.



Soll er doch den Code hier mal posten, dann können wir entscheiden, wie sinnvoll geplant wurde.  :lol:


----------

