Einfache Kundenverwaltung, guter Programmierstil

  • Themenstarter Themenstarter Mc Noise
  • Beginndatum Beginndatum
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...
 
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.
 
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 🙂
 
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
 

Neue Themen


Zurück
Oben