Klassenkonzept

26/10/2009 - 16:54 von Peter Gast | Report spam
Hallo,
ich möchte einen CSV-ReaderWriter als kleine Csv.DLL erstellen, die ich von
einem Hauptprogramm aus aufrufe. Einziger Rückgabewert soll die DataTable
mit dem Inhalt der CSV sein. Konzeptionell wollte ich in die DLL eine Form
frmCSV (mit Steuerlementen für Dateinamen eingabe, Feldtrenner, Vorschau in
Grid ...) und eine Klasse clsCSV mit der Funktionalitàt CSV-Dateien zu
handeln (inl. ein paar Zusatzfunktionen wie Emailspalte ermitteln ...)

Irgendwie drehe ich mich im Kreis bei folgender Entscheidung:
Main instanziert Csv.DLL und dort wird zuerst die frmCSV aufgerufen und
diese wiederum kommuniziert mit der clsCSV oder
Main instanziert Csv.DLL und dort wird zuerst clsCSV aufgerufen und diese
wiederum kommuniziert mit der frmCSV

oder denk ich hier zu komliziert und sollte die komplette Funktionalitàt in
die frmCSV packen.

Peter
 

Lesen sie die antworten

#1 Thorsten Doerfler
26/10/2009 - 22:48 | Warnen spam
Peter Gast schrieb:
Irgendwie drehe ich mich im Kreis bei folgender Entscheidung:
Main instanziert Csv.DLL und dort wird zuerst die frmCSV aufgerufen und
diese wiederum kommuniziert mit der clsCSV oder
Main instanziert Csv.DLL und dort wird zuerst clsCSV aufgerufen und diese
wiederum kommuniziert mit der frmCSV



An Deiner Stelle würde ich hier UI und reine Funktionalitàt strikt
trennen. Du implementierst Deine CSV Klasse, die die Aufbereitung
abhandelt, Parameter/Eigenschaften setzt oder ermittelt und was Du sonst
an reiner Funktion brauchst und kannst hier gleich ein UI zur Verfügung
stellen, dass quasi eine grafische Bedieneroberflàche für diese Klasse
bereitstellt und intern mit einer Instanz dieser Klasse arbeitet.

So bleibst Du flexibel und kannst die reine Funktionalitàt der Klasse
auch ohne Forms Oberflàche nutzen. Z.B. in einer WebApp, WPF App etc.

Man könnte schon darüber streiten, ob die Oberflàche wirklich Teil
dieser DLL/Assembly sein soll oder ob man diese nicht auch schon
komplett isoliert unterbringt.

oder denk ich hier zu komliziert und sollte die komplette Funktionalitàt in
die frmCSV packen.



Nein, das solltest Du besser nicht machen. Damit schrànkst Du die
Verwendung unnötig ein und musst die gleiche Arbeit spàter erneut
machen, wenn Du diese Funktionalitàt anderweitig benötigst.

Noch ein Tipp am Rande: Verzichte möglichst auf Prefixe, wie "cls" oder
"frm". "cls" hat schon zu VB6 Zeiten nichts in öffentlichen Klassen
eines sauberen Komponentenmodells verloren gehabt und "frm" sieht auch
reichlich bescheiden aus. Hier sollte man sich an die
Entwurfsrichtlinien zum Entwickeln von Klassenbibliotheken [1] halten
und Pascal Casing verwenden.

Bspw. Csv, CsvForm

Das "o" mehr zu tippen, macht den Braten dann nicht mehr fett.

[1] Design Guidelines for Developing Class Libraries
http://msdn.microsoft.com/en-us/lib...29042.aspx

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen