Veröffentlicht 27. Oktober 201113 j 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?
27. Oktober 201113 j 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
27. Oktober 201113 j 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”.
27. Oktober 201113 j 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.
28. Oktober 201113 j 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
28. Oktober 201113 j 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 )
28. Oktober 201113 j 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
28. Oktober 201113 j 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 201113 j von lilith2k3
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.