Gurki Geschrieben 27. Oktober 2011 Geschrieben 27. Oktober 2011 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? Zitieren
SilentDemise Geschrieben 27. Oktober 2011 Geschrieben 27. Oktober 2011 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 Zitieren
Pixie Geschrieben 27. Oktober 2011 Geschrieben 27. Oktober 2011 KISS - Keep it stupid simple Keep it simple, stupid! Zitieren
Pixie Geschrieben 27. Oktober 2011 Geschrieben 27. Oktober 2011 Ne, "stupid" ist als Anrede zu verstehen, deswegen auch das Komma. Zitieren
afo Geschrieben 27. Oktober 2011 Geschrieben 27. Oktober 2011 Im original Jargon File ist es nicht enthalten. Also ist wohl die aktuelle Fassung maßgeblich. (Um schonmal dem großen Jargon-File-Streit aus dem Weg zu gehen.) KISS Principle sagt “Keep It Simple, Stupid”. Zitieren
SilentDemise Geschrieben 27. Oktober 2011 Geschrieben 27. Oktober 2011 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. Zitieren
HJST1979 Geschrieben 28. Oktober 2011 Geschrieben 28. Oktober 2011 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 Zitieren
Leimy84 Geschrieben 28. Oktober 2011 Geschrieben 28. Oktober 2011 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 ) Zitieren
Sacaldur Geschrieben 28. Oktober 2011 Geschrieben 28. Oktober 2011 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 Zitieren
lilith2k3 Geschrieben 28. Oktober 2011 Geschrieben 28. Oktober 2011 (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? 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 28. Oktober 2011 von lilith2k3 Zitieren
Empfohlene Beiträge
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.