Design pattern für konsolenanwendungen


julia23

Mitglied
hallo!

Ich bin gerade am überlegen, welche design pattern ich für eine konsolenanwendung nehme die eigentlich im Grundprinzip nur sql Daten ausliest und berechnet. Ich bin da noch etwas unerfahren und habe bis jetzt nur mit MVC gearbeitet. Denke aber MVC ist eher für größere Webapplikationen gedacht. Oder denkt ihr da anders? Lg, Julia
 

sheel

I love Asm
Hi

Denke aber MVC ist eher für größere Webapplikationen gedacht. Oder denkt ihr da anders?
Ja, MVC passt nämlich auch für das derzeitige Programm.

Model: Alles, was mit der DB zu tun hat (verbinden, Daten auslesen, zurückspeichern...) und die nötigen
Strukturen/Klassen, um die Daten aus der DB halbwegs schön im Programm halten zu können

Für eine SQL-Tabelle Person mit Namen und Adresse eben eine Klasse machen Person, die einen Namen und eine
Adresse speichern kann, und bei Bedarf geladene Personen aus der DB in solche Klasseninstanzen speichern.
Und auch umgekehrt: Auch Methoden im Model anbieten, die solche Personenobjekte wieder in die DB übertragen.
Usw.

Dabei darauf achten, dass es nicht zu DB-spezifisch wird. Keine Methode sendeSQL machen, die man von
außen aufrufen kann, nur zB. ein "speichereNeuePerson" und Ähnliches. Möglichst so, dass man anhand
von speichereNeuePerson usw. überhaupt nciht erkennen kann, ob das in eine DB, Datei
oder sonst was gespeichert wird.


Controller: Eine Klasse, um "grobe" Aufgaben in feinere umzusetzen.
Die Methoden im Controller machen eben das, wofür das Programm geschrieben ist,
und verwenden dabei das "speicherPerson" usw. vom Model.


View: Die Benutzersteuerung in der Konsole. Fragen, was der Benutzer machen will,
Daten eingeben lassen, je nach Benutezrwunsch dann irgendwas von den angebotenen
Sachen vom Controller aufrufen, und die Ergebnisdaten wieder ausgeben
(wobei der Controller die Daten wieder in Klassenform bekommt und auch zurückliefert.
Für die Übersetzung zur Konsole ist die View selber zuständig)
 

julia23

Mitglied
Macht Sinn. Hab schon eine entsprechende Struktur erstellen können. Also danke schon mal!:)
Mich hatte nur irritiert das man bei Visual Studio 2013 nur über die ASP.NET Webentwicklung auch MVC erstellen kann.
 

sheel

I love Asm
Die Namensgebung bei den VS-Projektarten kann man generell ignorieren :)
Mir kommts schon so vor, Microsoft macht das extra um die Benutzer zu verwirren.

Fakt ist, MVC hängt nicht von der Projektart ab, nur vom Code.
(und C++ und C++/CLI sind noch immer verschiedene Dinge und und und...)