Zum Inhalt springen

Wie nutzt man Klassen sinnvoll?


Empfohlene Beiträge

Geschrieben

Hallo,

wie nutzt man Klassen in einer Programmiersprache (hier C#) eigentlich am sinnvollsten?

Also ich habe z.b. ein Programm was XML Daten in eine Datenbank schreibt, ausliest & auch ausgibt.

Nun wäre meine Frage, wie müsste eine sinnvolle Klassenstruktur aussehen?

2 Klasse? Einmal "Datenbank" & "XML" (und diese dann mit div. Methoden -> XML.cs = XMLSchreiben, XMLLaden | Datenbank.cs = DBLaden, DBSchreiben, DBUpdaten)

Oder die oben genannten Methoden als Klassen definieren? Hoffe ich drücke mich verständlich genug aus.

Im Grunde will ich mein Programm bzw. den Quellcode so sauber und übersichtlich wie möglich gestalten, darum lieber meherer (kleine) Klassen oder lieber zwei (große) Klassen?

Geschrieben

Google mal nach Seperation of Concerns. So klein wie möglich, so groß wie nötig. In eine Klasse gehört nur genau das, was zur Lösung ihrer Aufgabe nötig ist. Wichtig auch: YAGNI - you ain't gonna need it und KISS - Keep it stupid simple

Geschrieben
Ne, "stupid" ist als Anrede zu verstehen, deswegen auch das Komma.

ich bin des englischen mächtig, danke ;-)

es existieren über 15 verschiedene bedeutungen des akronyms "KISS" ;-) Letztendlich ists wichtig, was es aussagt, nicht wie man es schreibt.

Geschrieben

Hallo

ich denke deine Frage wurde eigentlich noch nicht Beantwortet:

Ich pers. würde alles was zu XML gehört (hier. Lesen, Schreiben) in eine Klasse mit 2 Methoden aufnehmen und alle Grundfunktionen für die DB (Lesen, Schreiben, Updaten) in eine Klasse mit 3 Methoden.

Ich finde m.E. den Code leichter als wenn ich wie in diesem Fall 5 Klassen mit je einer Methode hätte.

Gruß Hans-Jörg

Geschrieben

Reden wir hier eigentlich von einem Parser oder nur von einem Reader. Ich habe mal einen XML-Parser geschrieben und mit 2 Funktionen / Methoden kommt man da nie im Leben aus.

Btw: "Keep it stupid simple" find ich persönlich besser (weils mich dann nicht beleidigt :) )

Geschrieben
Ich finde m.E. den Code leichter als wenn ich wie in diesem Fall 5 Klassen mit je einer Methode hätte.

man kann nicht pauschal sagen, was besser ist, da dies von der exakten Aufgabe der Klassen abhängt

bestimmte Aufgaben lassen sich nicht auf viele Klassen verteilen, andere schon

eine Klasse mit 1 Methode macht meines Erachtens nach so gut wie keinen Sinn

ich sag einfach mal: 1 Klasse mit Main-Methode

diese kann dann die .NET Klassen für XML- und Datenbankzugriff verwenden

in der Klasse können ggf. weitere Methoden vorhanden sein, um die Abarbeitung aufzuteilen und für Übersicht zu sorgen

Geschrieben (bearbeitet)

Wie nutzt man Klassen sinnvoll?

Als Ordnungskriterium.

Also ich habe z.b. ein Programm was XML Daten in eine Datenbank schreibt, ausliest & auch ausgibt.

Nun wäre meine Frage, wie müsste eine sinnvolle Klassenstruktur aussehen?

Unbenannt.PNG

als Diskussionsgrundlage.

Im Grunde will ich mein Programm bzw. den Quellcode so sauber und übersichtlich wie möglich gestalten, darum lieber meherer (kleine) Klassen oder lieber zwei (große) Klassen?

Single responsibility principle - Wikipedia, the free encyclopedia

Open/closed principle - Wikipedia, the free encyclopedia

Liskov substitution principle - Wikipedia, the free encyclopedia

Inversion of Control

Dependency Injection

Pro Aufgabe nur eine Klasse (one reason to change).

Von daher so kleine Klassen wie möglich.

Ob man nun 2 Klassen mit 100 Zeilen oder 4 mit 50 Zeilen Code schreibt, bleibt sich gleich - allerdings ist die Fehlersuche in kleineren Klassen effizienter. Kleine Klassen sind meist verständlich und überschaubar.

Als Faustformel habe ich mir gesetzt: Keine Klasse mit mehr als 200 Zeilen zu schreiben (und das ist meist schon an der Grenze).

Und pro Methode 5-10 Zeilen.

So lange Refactoring betreiben, bis es nicht mehr sinnig ist.

Trenne die Erzeugung von der Nutzung der Objekte.

Schaffe mit dem OpenClosedPrinzip Flexibilität und klare APIs.

Bearbeitet von lilith2k3

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...