Empfohlene Bücher zur Desktop-Anwendungsentwicklung mit MVC [geschlossen]

8

Ich suche nach Empfehlungen zu Büchern über MVC auf dem Desktop. Wenn sie Java verwenden, ist das ein Bonus.

Etwas Hintergrund: Ich schreibe eine Desktop-Anwendung in Java. Es ist eine Audio-Anwendung, die eine Reihe von Ansichten und ein zentrales Modell namens Bibliothek mit Wiedergabelisten, Effektlisten und eine Ordnerstruktur hat, um sie zu organisieren. In dieser Anwendung würde ich gerne Menüs, Kontextmenüs und Drag & Drop-Unterstützung für verschiedene Benutzeraktionen haben. Ich habe mit MVC gekämpft.

Ich habe mit allen Logik / Controllern in der Hauptklasse begonnen, habe aber begonnen, sie in ihre eigenen Klassen zu trennen. Jetzt muss ich Listeners und Beobachter verwenden, um Nachrichten zwischen den Ansichten und dem Controller zu behandeln. Dies führte dazu, dass ich eine Reihe von Interfaces erstellte und meine Hörer an mehreren Stellen durchschleifte, um verschiedene Nachrichten abzufeuern. Aber dieser Schleifencode wird immer wieder wiederholt (nicht DRY), daher nehme ich an, dass ich jetzt verschiedene Arten von Ereignisklassen erstellen, diese Ereignisse in meinen Ansichten erstellen und eine einzige Methode in der Ansicht verwenden soll, um sie an die verschiedenen Listener auszulösen .

Update: Argwöhnlich sollte es nicht viel ausmachen, aber ich benutze SWT, nicht Swing.

    
Brian Kelly 11.11.2009, 21:31
quelle

6 Antworten

8

Ich hatte das gleiche Problem: Es braucht wirklich viel Disziplin, um eine (nicht triviale) Swing-App zu schreiben, weil alle Zuhörer und Ereignisse und die asynchrone Verarbeitung sich schnell für einen großen Haufen nicht wartbaren Codes eignen.

Ich fand, dass klassische MVC nicht genug ist, müssen Sie in spezifischere Muster wie Präsentationsmodell und so aussehen . Das einzige Buch, das ich über dieses Muster für Desktop-Anwendungen gefunden habe, ist Desktop Java Live von Scott Delap. Während sich die meisten Swing-Bücher mit Techniken zur Lösung spezifischer Probleme befassen (wie man einen rasterlosen Jtable erstellt, wie man einen runden Knopf implementiert, ...), wird Delap's Buch Ihnen helfen, eine mittelgroße Swing-Anwendung, Best Practices usw. zu entwerfen .

    
alves 05.10.2008, 23:16
quelle
2

So ziemlich jede Java, Eclipse, Netbeans Swing Bücher sollten zum Trick.

1) FREE --- Denken in Java ( Ссылка )
2) CORE Java, Band 1 und 2
3) Swing-Hacks: Ссылка 4) Netbeans RCP: Ссылка 5) Eclipse Rich-Client-Programmierung - Ссылка

Hoffe, das hilft.

BR,
~ A

    
anjanb 03.10.2008 21:02
quelle
2

In C # eher als Java, aber Jeremy Miller hat eine Haufen von Posts in Bezug auf Desktop-Apps und MVP / MVC (und eine ganze Reihe von anderen verwandten Sachen).

    
Yuval 03.10.2008 21:24
quelle
1

Nur um meine 2 Cent einzuwerfen, empfehle ich das Buch Head First Design Patterns . Es hat eine sehr gute Erklärung des MVC-Musters (in Java). Es baut auf anderen Entwurfsmustern auf, die ebenfalls in dem Buch diskutiert werden, wie beispielsweise Observer, Strategy und Composite, die in MVC verwendet werden.

Bestes MVC-Tutorial, das ich gelesen habe. Sehr empfehlenswert.

    
urini 07.10.2008 07:55
quelle
0

Vergessen Sie nicht die Swing-Tutorials; zum Beispiel das Tutorial zu Swing-Ereignissen .

Beachten Sie bitte den SwingWorker oder behandeln Sie Ereignisse in einem separaten Worker-Thread. Ich bin kein Experte für Swing, aber ich weiß, dass ein Großteil der wahrgenommenen Langsamkeit von Java Desktop-Anwendungen auf die Arbeit im Event-Thread zurückzuführen ist. Wenn diese Arbeit einige Zeit in Anspruch nimmt, reagiert die gesamte GUI nicht mehr. Nachher schwer zu reparieren, nicht allzu schwer, wenn man es im Hinterkopf behält.

Was die Bücher betrifft, so fand ich die Core Java-Serie von Cay Horstmann und Gary Cornell sehr schön. Es geht jedoch um Java (inklusive Swing) und nicht um MVC.

    
extraneon 03.10.2008 21:21
quelle
0

Ich muss meinen obigen Eintrag hinzufügen das kostenlose BOOK - THINKING IN JAVA spricht über OOP, MVC und auch über Swing. Nicht sicher, ob es die verschiedenen Implementierungen von MVC jedoch diskutiert.

    
anjanb 03.10.2008 22:16
quelle