2008-10-03 6 views
8

Ich bin auf der Suche nach Empfehlungen für Bücher über MVC auf dem Desktop. Wenn sie Java verwenden, ist das ein Bonus.Empfohlene Bücher über Desktop-Anwendung Entwicklung mit MVC

Einige 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, wie man das erreicht.

Ich begann mit allen Logik/Controller in der Hauptklasse, 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 einzelne Methode in der Ansicht verwenden soll, um sie an die verschiedenen Listener auszulösen .

Update: Arguabley sollte es nicht viel ausmachen, aber ich verwende SWT, nicht Swing.

Antwort

8

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

Ich fand, dass klassische MVC nicht genug ist, müssen Sie in spezifischere Muster wie Presentation Model und so aussehen. Das einzige Buch, das ich über dieses Muster fand, wenn es auf Desktop-Anwendungen angewendet wurde, 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 .

2

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

1) FREE --- Denken in Java (http://mindview.net/Books/TIJ/DownloadSites)
2) CORE Java, Band 1 und 2
3) Schwingen hackt: http://www.amazon.com/Swing-Hacks-Tips-Tools-Killer/dp/0596009070
4) netbeans RCP: http://www.amazon.com/Rich-Client-Programming-Plugging-NetBeans/dp/B00132S6UU/ref=dp_kinw_strp_1 5) Rich Client Programmierung verdunkeln - http://www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612

Hoffe, das hilft.

BR,
~ Eine

0

nicht die Swing-Tutorials Vergessen Sie; zum Beispiel die Swing Events tutorial.

Und bitte beachten Sie die SwingWorker, oder die Behandlung von Ereignissen 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 bedenkt.

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

2

In C# eher als Java, aber Jeremy Miller hat eine bunch of posts in Bezug auf Desktop-Anwendungen und MVP/MVC (und eine ganze Reihe anderer verwandter Sachen).

0

Ich muss zu meinem obigen Eintrag hinzufügen, dass das kostenlose Buch - DENKEN IN JAVA spricht über OOP, MVC und auch über Swing. Nicht sicher, ob es die verschiedenen Implementierungen von MVC diskutiert.

1

Nur um meine 2 Cent zu werfen, 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.

Beste MVC Tutorial habe ich gelesen. Sehr empfehlenswert.

Verwandte Themen