Entkoppeln

Status
Nicht offen für weitere Antworten.

Weisswurst

Aktives Mitglied
Hi!

Ich möchte das Programm, das ich von einem Kollegen übernommen habe neu entwerfen, weil das momentan 100% Spaghettie ist.

Ich habe bereits mehrer Interfaces definiert, die dann meine Klassen vorgeben. (Habe wo gelesen, dass man sich bei der Programmierung auf Interfaces und nicht auf Klassen beziehen soll. Man bleibt flexibler)

Weiterhin müsste ich die grafische Oberfläche (ein Dialog mit wenigen Buttons und einer großen Tabelle) von der Anwendungslogik entkoppeln. Momentan ist das alles eins.

Die Anwendungslogik besteht aus:
- Datei mit zu überprüfenden Rechnern einlesen
- Diese Rechner in die Tabelle in dem Dialog schreiben
- Dann diese Liste schritt für schritt abarbeiten (rechner verbinden, und dateien auslesen)
- Die Daten die von den Dateien von den Rechnern eingelesen werden müssen dann in die Tabelle auf dem Hauptdialog.

Die Datenstrukturen für die Daten aus den Datein habe ich inzwsichen definiert. Was fehlt ist ein geeigneter Aufbau für die Programmlogik.

Im Prinzip könnte ich eine Klasse machen mit drei Funktionen für das einlesen der ersten Datei, für das einlesen der Zweiten und dann der Dritten. Die Funktionen bekommen dann als Parameter eine Referenz auf die Datenstruktur, die dann in der Tabelle dargestellt werden.

Wäre das OO Designtechnisch schön? ;)

Habt ihr alternative Vorschläge?
Hoffe ihr versteht überhaupt was ich sagen will...
 

EOB

Top Contributor
also ich versthes nicht sooo ganz. du hast also nix weiter als ein paar buttons, die auf druck etwas an der gui füllen? also man könnte es so machen:

1.
wenn der button gedrückt wird, wird dein controller aufgerufen

2.
die methode im controller ruft dann beispielsweise eine fassade zur anwendungsschicht auf und übergibt die daten aus dem fenster, wenn vorhanden.

3.
die fassadenmethode führt die geschäftsprozesse aus

4.
danach gibt die fassade alles an den controller zurück

5.
der controller gibt die daten an das fesnter/tabelle etc weiter.

als controller eignen sich in java die actions. du könntest also einfach eine action anlegen, in der art:


Code:
class MyAction extends AbstractAction{

    public void actionPerformed(ActionEvent ae){
        ArrayList list = Facade.doSomething(getValue("foobar"));
        Dialog d = new Dialog(list);
    }
}

und vorher:

Code:
button.setAction(new MyAction());
button.addActionListner(new ActionListener(){
    public void actionPerformed(ActionEvent e){
        doActionPerformed(e);
   }
});

//...........

public void doActionPerformed(ActionEvent e){
    Object src = e.getSource();
    Action action = ((JButton)src).getAction();
    action.putValue("foobar", textfield.getText());
}

habs nich kompiliert, aber erstmal so grob. konnte ich etwas helfen?

grüße

eob
[/list]
 

EOB

Top Contributor
ich wollte dir ne mischung empfehlen. meins war ja mvc ... das modell war nur nich in der beschreibung. wie gesagt, view ist dein dialog, control zb die action klassen na ja und dein model eben. das facade pattern kannst du nehmen, msst aber nicht :).

grüße
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben