Einfache Kundenverwaltung, guter Programmierstil

M

Mc Noise

Gast
Hallo zusammen,

Ich will mich ein wenig mit der Java, bzw. der Android Programmierung befassen. Ich habe vor, einfach eine simple Kundenverwaltung zu schreiben. Doch da fängt das Problem schon an :)
Ich möchte natürlich nichts runter programmieren, was ich danach gleich wegwerfe. So eine Kundenverwaltung kann man später ja immer mal gebrauchen. Vielleicht wächst die Anwendung ja auch kontinuierlich weiter...

ich bin mir aber nicht so ganz sicher, wie ich das ganze am saubersten angehe. Dass es sich hier um eine Andoid Anwendung handelt, halte ich erstmal für nebensächlich. Ich will euch aber erstmal zeigen, wie ich mir das gedacht habe.

Ich habe erstmal mit einer Einteilung in drei Schichten begonnen: Präsentationsschicht, Logikschicht und Datenhaltungsschicht.

Interessant ist für mich erstmal die Logikschicht. Hier will ich Kunden anlegen, suchen, bearbeiten und löschen können. ich habe eine Klasse Person und eine Klasse Metaperson, die die Personen anlegt und verwaltet. ich kenne mich da nicht so gut aus, aber ich habe da an die Fabrikmethode gedacht. Ich fürchte nur, dass mein Gedanke nicht ganz mit dem der Fabrikmethode übereinstimmt. Habe bisher nur darüber gelesen.

wie sollte so etwas am besten aussehen? mir geht es darum, das ganze besser zu verstehen und einen sauberen, wiederverwendbaren code zu schreiben. Wenn mir jemand helfen kann, sei es mit einer Zeichnung oder einem abstrakten Codebeispiel. ich wäre euch echt dankbar.

So habe ich mir das gedacht:

Anlegen und Suchen in der Datenhaltungsschicht über "Metaperson" , bearbeiten direkt über die Klasse Person.
Metaperson macht select und insert in Datenhaltungsschicht, Person macht update und delete.

Brauche ich zwingend Oberklassen, etc. (Fabrikmethode). Was ist sinnvoll?

Vielen Dank...
 

XHelp

Top Contributor
Da sich hier noch keiner geäußert hat, versuche ich mich mal.
Ich finde den Weg über Metapersonen nun nicht unbedingt den besten.
Du brauchst ja nur ein Sammelklasse für "Personen", mit paar Zusatzfunktionen wie "suche". Ich weiß auch nicht wozu du eine Metaperson brauchst, die Personen erstellt.
An deine selbstgeschriebene Datenbank kannst du ja dann die GUI aufsetzen.
 

Cage Hunter

Aktives Mitglied
Na dann geb' ich mal auch noch meinen Senf dazu^^

Zunächst einmal : Sehr löblich, dass du die Schichten trennen willst ;)

Jedoch sehe ich das ähnlich wie XHelp mit der Metaperson...
Schon, dass du die Datenhaltungssachen auftrennen willst, Teile in Metaperson, Teile in Person, fände zumindest ich später verwirrend.

Ich würde Person nur als Teil des Modells verstehen, welches keine Ahnung davon hat, dass es in eine Datenbank gepackt werden soll. Anstelle dessen würde ich eine separate Klasse anlegen, die eben vollständig für die Persistenzen zuständig ist, nennen wir sie PersonController. Da kämen eben alle Such-, Speicher-, Update- und Löschmethoden rein, die du brauchst für die Personen.

Da Du die Schichten ja trennen willst kannst du dir ja mal überlegen zu welchen Schichten diese Methoden und Eigenschaften passen würden. Das ist zwar meistens interpretierbar und erinnert eher an Philosophie, aber ich würde meinen, dass "Sachen mit der Datenbank machen" (Controller) in einer anderen Schicht sein sollte als "Sachen, die in der Datenbank drin sind" (Personen) :)

Was eine Factory angeht...nunja, wenn deine Person nicht zu komplex wird, dann würde eigentlich ein Konstruktor in Person reichen, meistens ist das auch ausreichend wenn's "nur" um eine Modellklasse geht :)
 
M

Marcinek

Gast
Eine Kundenverwaltung sollte doch über eine Client/Server Architektur verfügen, dann brauchst du eine geeginete Transportschicht.

Das A und O einer guten Kundenverwaltung ist die spätere Anpassbarkeit.

Man sollte also Personenarten selbst hinzufügen können und Felder selbst deklarieren können. (Ohne anpassung von Codes).

Wichtig ist, dass Personen immer das System über ihre Updates informieren, (Observer), damit spätere Plugins / Erweiterungen darauf reagieren können. Zum Beispiel ABC Klassifikation von Kunden => A > B zuordnung = > neue Aufgabe "Kunden anschreiben"

Googel mal nach: CRM Systeme, dann wirst du cirka hrausbekommen, was da wichtig ist.

Gruß,

Marcinek
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Einfache Navigations-App schnell selber Programmieren? Bitte um Ideen und Anregungen. Allgemeine Java-Themen 17
J Einfache Sprachsteuerung Allgemeine Java-Themen 3
L Übergabe an eine eher einfache Java- Applikation wegen Kündigung Allgemeine Java-Themen 1
K Einfache Verkettete Liste mit Node Allgemeine Java-Themen 3
D RMI Einfache Chat-Anwendung mit RMI Allgemeine Java-Themen 0
L einfache Verzinsung mit for-Schleife & Ausschluss von Werten beim Einlesen Allgemeine Java-Themen 5
S Einfache Methode die Groesse eines Objekts zu ermitteln? Allgemeine Java-Themen 12
D einfache Filterung optimieren Allgemeine Java-Themen 16
S YUV to RGB (einfache Berechnung) Allgemeine Java-Themen 5
N einfache Klassen Allgemeine Java-Themen 18
M Schnelle Scriptsprache für einfache Funktionen? Allgemeine Java-Themen 5
R Einfache Matheaufgabe - Daten auf Anzeigebereich verteilen Allgemeine Java-Themen 4
E einfache grafische Oberfläche wie in MS C#? Allgemeine Java-Themen 6
V Einfache toString() generieren? Allgemeine Java-Themen 6
E einfache Frage zu Vector Allgemeine Java-Themen 8
E Einfache Frage zu ListIterator Allgemeine Java-Themen 10
E einfache Frage zu getRealPath(.) Allgemeine Java-Themen 2
E einfache Frage zu protected Allgemeine Java-Themen 10
E einfache Frage zu verdeckten Membern Allgemeine Java-Themen 2
E Einfache Fragen zu Dateien Allgemeine Java-Themen 7
U Guter Programmierstil? this immerverwenden? Allgemeine Java-Themen 13
K Ein Guter GUI-Builder ? Allgemeine Java-Themen 9
P guter Stil? Allgemeine Java-Themen 7
T Frage zu interface und "guter Programmierstil" Allgemeine Java-Themen 4
C guter Programmierstil Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben