Entwurfsmuster gesucht

W

webbbdesigner

Gast
Folgende Anforderung:

Für einen Fahrzeugverleih werden die Mietpreise der Fahrzeuge abhängig von der Fahrzeugkatergorie, Sasion (Jahreszeit) und der Mietdauer ermitelt.

Ich habe eine Klasse für die Fahrzeuge. für Fahrzeugkategorein und ein Interface, das das Verhalten "verleihbar" abbildet (insb. die Methode "getMietpreis" vorgibt).

Frage: Wo implemetiere ich nun die Methoden zur Preisermittlung (abh. von den o.a. Kriterien)? Eine eigene Klasse, die das verantwortlich macht? Gibt es für ein solches Problem ein Entwurfsmusster?

Vielen Dank.
 

turtle

Top Contributor
Ichh vermute mal schon und bin der Meinung, dass die Methode eine Abfrage an eine Datenbank macht. Daher schlage ich das DAO-Pattern vor.
 

oopexpert

Mitglied
Fahrzeug, FahrzeugKategorie und Saison sind Top-Level-Objekte, die einer verwaltenden Instanz, z.B. einem Objekt FahrzeugVermietungSystem, untergeordnet sind. Damit würde sich für mich die Frage der Position der Methode erübrigen, nämlich in dem FahrzeugVermietungSystem.

Bzgl. Design Pattern: Ja und Nein. Design --> ja, Pattern --> nein. Ich würde proklamieren, mehr auf Objektkomposition und Objektkollaboration zu achten und die natürlichen Objekte zu identifizieren. Ich sehe viele Entwickler, die immer wieder vor so einer Frage stehen. Einige machen sich tatsächlich Arbeit damit, wie Du, die optimale Position ihrer Methoden zu identifizieren und merken, dass irgendetwas nicht ganz sauber ist, weil die Entscheidung so schwer ist. Die anderen haben keine Hemmung und bauen sich Utility-Klassen, die dann Business-Logik beinhalten.

getMietPreis in einem DAO zu implementieren, halte ich für nicht so gut, da dann Business-Logik in den Data-Access-Layer abwandert. Sollten keine performancekritischen Gründe existieren, dann sollte man die Business-Logik auch in den Fachobjekten behalten. Ich würde mir das so vorstellen:

Java:
FahrzeugVermietungSystem system = FahrzeugVermietungSystem.getInstance();
Fahrzeug f = system.addFahrzeug("Mercedes SLK 220", grundpreis);
Saison winter = system.addSaison("Winter", von, bis);
Saison herbst = system.addSaison("Herbst", von, bis);
system.addMietpreisStaffelung(f, winter, vonAnzahlTage, bisAnzahlTage, preisfaktor);
system.addMietpreisStaffelung(f, herbst, vonAnzahlTage, bisAnzahlTage, preisfaktor);
system.addMietpreisStaffelung(f, herbst, vonAnzahlTage, bisAnzahlTage, preisfaktor);
double mietpreis = system.getMietpreis(f, herbst, von, bis);

Wenn Du nicht den Anspruch hast, die Objektkomposition und die Objektkollaboration beachten, dann würde ich die Methode in Fahrzeug ablegen:

Java:
double mietpreis = f.getMietpreis(herbst, von, bis);

Ich kenne Dein Fachklassen-Modell nicht, deshalb weiss ich nicht, ob dieses Beispiel 1:1 projezierbar auf Deine Anwendung ist. Es ist nur ein Vorschlag.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Entwurfsmuster für den Client der Rest API Softwareentwicklung 0
H MVC noch Zeitgemäß oder anderes Entwurfsmuster? Softwareentwicklung 4
R Das richtige Entwurfsmuster Softwareentwicklung 3
T Aufgabestellung mit Entwurfsmuster impl. Softwareentwicklung 19
E Regular Expression gesucht: Zeichen nur finden, wenn ihm kein anderes voransteht Softwareentwicklung 2
Manello PET 2001 Basic gesucht! Softwareentwicklung 11
Z Diensttechnologie a la WebServices gesucht Softwareentwicklung 3
D 1a UI Webkomponenten Library gesucht Softwareentwicklung 26
K Zweitprogrammiersprache gesucht Softwareentwicklung 13
G Design Pattern gesucht! Softwareentwicklung 4
I Tool / Programm etc. zur Testdokumentation gesucht Softwareentwicklung 2
ruutaiokwu reverse engineering tool gesucht: source code -> uml klassendiagramm Softwareentwicklung 5
C Dokutool gesucht Softwareentwicklung 2
G Graphische Notation fuer Netzwerktopologie gesucht Softwareentwicklung 3
T Gesucht: Programmiersprache die man compilen kann Softwareentwicklung 21
S MDA Buch gesucht Softwareentwicklung 2
ff Suchalgorithmus gesucht Softwareentwicklung 15
T SQL-Statement gesucht die 2. Softwareentwicklung 15
T SQL Statement gesucht Softwareentwicklung 15
S Beispiel für MVC gesucht Softwareentwicklung 53
D C# zu Java - Übersetzer gesucht. Softwareentwicklung 3
M Übersetzer für Programmhilfe gesucht Softwareentwicklung 2
R ODBC-Befehle gesucht Softwareentwicklung 28

Ähnliche Java Themen


Oben