Design / Implementierung

Status
Nicht offen für weitere Antworten.

kama

Top Contributor
Hallo,

ich habe eine SOAP Schnittstelle programmiert (http://jagosi.soebes.de).
Jetzt habe ich aber ein paar Fragen:

Die Schnittstelle selbst ist ja "flach", sprich viele Methoden in einer Klasse, die die Funktionalitäten darstellen:

Manche Methoden haben jetzt aber eine lange Reihe von Parameter.

Code:
JaGoSI gf = new JaGoSI ("http://gforge.domain/soap/index.php");
gf.login("username", "password");
..
JaGoSIArtifact[]  artifactList = jg.getArtifacts(Group, ArtifactType, assignedTo, state);
Ok. Ist ja schon ok....

Mein erster Weg zur "verschönerung" ist der Folgende:
Code:
JaGoSIGroup group = gf.getGroups().get("SVN Test Project");

JaGoSIArtifactType artifactType = gf.getGroups().get("SVN Test Project").getArtifactTypes().get("Bugs");
Das obige wollte ich auch mit "getArtifacts" machen, in etwa so:
Code:
JaGoSIArtifact[] artifacts = gf.getGroups()
    .get("SVN Test Project").getArtifactTypes()
    .get("Bugs").getAssigned()
    .get("ANY").getStates()
    .get("OPEN");

Das Problem was auftaucht ist, dass in der Klasse JaGoSIGroup nun eine Instanz (JaGoSI) gehalten werden muss, um die Verkettung durchführen zu können und ich muss selbstverständlich die Methode getArtifactTypes in die Klasse JaGoSIGroup entprechend implementieren. Auch wenn die Implementation lediglich aus einem Delegator besteht...
Das bedeutet, das ich in jeder Klasse den Delegator implementieren muss, damit die Verkettung wie oben gewünscht funktioniert.

Die Frage ist zum einen, ob es einen geschickten(ren) Weg gibt eine solche flache Schnittstelle besser (was auch immer das heißen mag) zu verpacken?

und zum anderen, ob es einen Besseren Weg gibt als mit den og. Delegatoren in den anderen Klassen.....


Vielen Dank im Voraus.
MfG
Karl Heinz Marbaise
 

NTB

Bekanntes Mitglied
kama hat gesagt.:
Manche Methoden haben jetzt aber eine lange Reihe von Parameter.

Code:
JaGoSI gf = new JaGoSI ("http://gforge.domain/soap/index.php");
gf.login("username", "password");
..
JaGoSIArtifact[]  artifactList = jg.getArtifacts(Group, ArtifactType, assignedTo, state);

Wo ist da die lange Reihe von Parametern? Meinst Du die vier Parameter für getArtifacts?

Ab dann versteh ich ehrlich gesagt nur noch Bahnhof, was allerdings auch gut an mir liegen kann.
 
S

SlaterB

Gast
das mit den Exemplarvariablen stimmt, wobei man schlecht sagen kann, wie aufwendig das ist,
ohne die andere Art zu kennen,

ich halte diese Verknüpfung von Exemplarvariablen jedenfalls spontan für eine ganz normale Struktur?


> und ich muss selbstverständlich die Methode getArtifactTypes in die Klasse JaGoSIGroup entprechend implementieren.
> Auch wenn die Implementation lediglich aus einem Delegator besteht...
> Das bedeutet, das ich in jeder Klasse den Delegator implementieren muss, damit die Verkettung wie oben gewünscht funktioniert.

das habe ich jetzt nicht verstanden,
zu welcher Klasse gehört denn getArtifactTypes() stattdessen?

die meisten Operationen scheinen mir nur die getter für die entsprechenden Exemplarvariablen zu sein,
dagegen gibts ja nix zu sagen,

und dann noch in den passenden Klassen etwas mehr Logik, solche Operationen jeweils nur einmal

wüßte jetzt gar nicht warum du überhaupt einen Delegator brauchst?
außer sowas wie get() auf die interne ArrayList oder so, das ist ja auch ganz normal
 

kama

Top Contributor
Hallo,

erst einmal vielen Dank für die Antwort...

NTB hat gesagt.:
Wo ist da die lange Reihe von Parametern? Meinst Du die vier Parameter für getArtifacts?
Ja das ist z.B. etwas was mich dann stört bzw. sehr unschön ist...

NTB hat gesagt.:
Ab dann versteh ich ehrlich gesagt nur noch Bahnhof, was allerdings auch gut an mir liegen kann.
Kann auch an mir liegen, dass ich mich nicht klar genug ausgedrückt habe.... sorry..

Mein obiges Code Beispiel hat noch einen Schönheitsfehler:
Code:
JaGoSIArtifact[] artifacts = gf.getGroups()
    .get("SVN Test Project").getArtifactTypes().get("Bugs")
    .getAssigned().get("ANY")
    .getStates().get("OPEN")
    .getArtifacts();
So sieht das Ganze etwas eleganter aus....eben das Problem, dass ich die Delegatoren implementieren muss....

MfG
Karl Heinz Marbaise
 

kama

Top Contributor
Hallo,

zuerst einmal vielen Dank für die Antwort. Hat auch ein wenig gedauert...

SlaterB hat gesagt.:
zu welcher Klasse gehört denn getArtifactTypes() stattdessen?

getGroups() gehört zur Klasse JaGoSI:
Code:
public HashMap<String, JaGoSIGroup> getGroups() {.......}

Hiest ist die Methode getArtifactTypes() aus der Klasse JaGoSIGroup:
Code:
public HashMap<String, JaGoSIArtifactType> getArtifactTypes() {
    return jagosi.getArtifactTypes(this);
}
Und genau diese Art von Methoden werden ich dann in verschiedenen anderen Klassen ebenfalls einbauen müssen...

Aber bis dato sehe ich nicht wirklich eine bessere Möglichkeit...

MfG
Karl Heinz Marbaise
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Meinung zum verwendeten Design Pattern Allgemeine Java-Themen 4
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
S ArrayList Design Allgemeine Java-Themen 4
S Interface Design von HookUp oder Callback Methoden für eigenes Framework Allgemeine Java-Themen 9
Kirby.exe Framework für Game Design Allgemeine Java-Themen 8
C WindowBuilder Design funktioniert nicht Allgemeine Java-Themen 0
M Diverse Design-Fragen Allgemeine Java-Themen 6
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
M OOP Design Pattern - "extends Observable implements Observer" Allgemeine Java-Themen 0
T OOP Fehler im Design Allgemeine Java-Themen 9
perlenfischer1984 Welches Design Pattern ist geegneit. Allgemeine Java-Themen 7
perlenfischer1984 Hilfe bei Design (Pattern) Allgemeine Java-Themen 5
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
R Parameter Adapter - Design Allgemeine Java-Themen 1
D Bezüglich Design meines Codes Allgemeine Java-Themen 1
D OOP Design Pattern für GUI - Datenbank Anwendung Allgemeine Java-Themen 1
S Java Design Frage Allgemeine Java-Themen 10
L OOP Klassen-Design (static oder nicht?) Allgemeine Java-Themen 3
P Auf die Anzahl der Joins achten beim WS design Allgemeine Java-Themen 1
M OOP Design Frage Allgemeine Java-Themen 2
J Domain Driven Design - Modellierungsfrage Allgemeine Java-Themen 3
F Welches Design Pattern? Allgemeine Java-Themen 3
H MVC Design Allgemeine Java-Themen 9
J Swing Eigenes Button-design Allgemeine Java-Themen 2
Q Kapselung Allgemeine Design- Frage Allgemeine Java-Themen 8
Z Design um boolsche ausdrücke zu speichern & auszuwerten Allgemeine Java-Themen 3
A Sinnvolles Software Design bei Eigenschaftsänderungen von Objekten Allgemeine Java-Themen 7
C Gutes Code Design (3 Schichten Modell) Allgemeine Java-Themen 19
D Design Stations-Gitter Allgemeine Java-Themen 4
M Public Static importRunning -> Bad Design oder ok ? Allgemeine Java-Themen 5
L Software-Design: Kommunikation mit SerialPort (RXTX) Allgemeine Java-Themen 2
D [Drag&Drop] Design-Pattern-Frage Allgemeine Java-Themen 4
G Design Patterns für Programm Allgemeine Java-Themen 3
I Wie populär ist Design by Contract in Java und was haltet ihr davon? Allgemeine Java-Themen 5
Landei Design-Problem Formel-Parser Allgemeine Java-Themen 10
J Aktionen im State-Design-Modell Allgemeine Java-Themen 3
S Design Oberfläche Allgemeine Java-Themen 2
L Design-Frage: Platzierung der Save-Methode Allgemeine Java-Themen 3
G Domain Driven Design Model Allgemeine Java-Themen 14
G konkretes Domain Driven Design Aggregate Allgemeine Java-Themen 2
ruutaiokwu welches design pattern? frage an die oo-experten unter euch... Allgemeine Java-Themen 3
G Accordion Design Pattern Frage Allgemeine Java-Themen 2
hdi Hilfe beim Design (Stichwort OO, Pattern, ...) Allgemeine Java-Themen 11
B Design Problem Allgemeine Java-Themen 8
faulelotte Verständnisproblem Domain Driven Design Allgemeine Java-Themen 3
S Frage zum Design der Datenstruktur Allgemeine Java-Themen 10
D design gesucht - Angabe von zu ersetzenden substrings Allgemeine Java-Themen 2
D Design ohne Getter und Setter Allgemeine Java-Themen 8
D Design: on-the-fly-Parsing + Datenstrukturen Allgemeine Java-Themen 5
N Welches design pattern? Allgemeine Java-Themen 8
D design client server Allgemeine Java-Themen 10
T Design-Frage Allgemeine Java-Themen 14
S XML-Parsing / public-Member-Variablen / Design-Frage Allgemeine Java-Themen 8
S JToolBar Design Allgemeine Java-Themen 3
M Bildersyncronisierung - Design Patterns? Allgemeine Java-Themen 2
T Design - Exception in Thread Allgemeine Java-Themen 3
G Composite, Design Pattern, printTree Allgemeine Java-Themen 42
N Design-Frage: persistent machen per Reflection Allgemeine Java-Themen 3
M Frage zum Design :: allgemein Allgemeine Java-Themen 6
M MVC Design Pattern - Verständniss Fragen Allgemeine Java-Themen 3
U Frage zu DB Design Allgemeine Java-Themen 3
N Checkstyle - Design for Extension Allgemeine Java-Themen 4
F Design Pattern zur Realisierung von Mehrfachvererbung? Allgemeine Java-Themen 8
E Was ist ein gutes Design fuer meine Programm? Allgemeine Java-Themen 3
F Paket und Software Design Fragen. Allgemeine Java-Themen 5
P Apple Design Allgemeine Java-Themen 5
S design frage Allgemeine Java-Themen 10
T Design-Tipp gesucht Allgemeine Java-Themen 2
M Design von Java Klassen Allgemeine Java-Themen 2
G java design von klassen und projekten Allgemeine Java-Themen 6
K Design: Klassen in Pakete aufteilen - Eure Meinung Allgemeine Java-Themen 8
S Programmierstil / design Allgemeine Java-Themen 9
S Exception design Allgemeine Java-Themen 2
m@nu Exception-Design Allgemeine Java-Themen 4
R Design-Frage Allgemeine Java-Themen 9
N Hilfe beim Design Allgemeine Java-Themen 13
D Design Pattern: Singleton Allgemeine Java-Themen 4
Torres Design-Problem mit Jakarta Struts Allgemeine Java-Themen 2
A Anwendungs-Design (Plugin-Architektur) Allgemeine Java-Themen 4
L Unterschied zwischen List und LinkedList implementierung? Allgemeine Java-Themen 15
boschl2000 Springerproblem-Implementierung funktioniert nicht richtig Allgemeine Java-Themen 1
L rotateLeft implementierung Allgemeine Java-Themen 2
R In der Ausgabe sollte anstelle des obersten Sterns ein "+" stehen nur scheitere ich bei der Implementierung Allgemeine Java-Themen 9
D Input/Output Implementierung eines CommandHandlers/Parsers für viele Eingaben Allgemeine Java-Themen 26
Stonie Prüfen von direkter Implementierung eines Interfaces Allgemeine Java-Themen 7
S Mutable objects und Implementierung von ChangeEvents Allgemeine Java-Themen 5
W Queue Implementierung Allgemeine Java-Themen 6
C Ein Iterator ist eine Implementierung des Interface Iterable? Allgemeine Java-Themen 2
F Implementierung von Teilprogrammen [Java|Python] Allgemeine Java-Themen 7
I TimSort - Sortieralgorithmus - Erklärung und Pseudocode - Implementierung Allgemeine Java-Themen 2
L Implementierung eines AVT-Baums Allgemeine Java-Themen 2
ruutaiokwu burstsort-implementierung in java? Allgemeine Java-Themen 2
D Implementierung einer Mehrsprachigkeit, wichtig ? Allgemeine Java-Themen 5
D Implementierung einer Rechteverwaltung Allgemeine Java-Themen 2
A Implementierung eines Algorithmus (Farthest Insertion zur Lösung des TSP) in O(n²) Allgemeine Java-Themen 2
R "Countdown" Implementierung Allgemeine Java-Themen 5
K A*-Implementierung flexibler machen Allgemeine Java-Themen 4
J Java-Implementierung diverser Beziehungen zwischen Klassen bzw. Objekten Allgemeine Java-Themen 2
S BlueJ Cäsar-Implementierung Allgemeine Java-Themen 6
S Implementierung Programmneustart Allgemeine Java-Themen 10

Ähnliche Java Themen


Oben