9

我正在寻找有关桌面 MVC 书籍的建议。如果他们使用 Java,那将是一个好处。

一些背景知识:我正在用 Java 编写一个桌面应用程序。它是一个音频应用程序,具有多个视图和一个称为库的中央模型,其中包含播放列表、效果列表和用于组织它们的文件夹结构。在这个应用程序中,我希望为各种用户操作提供菜单、上下文菜单和拖放支持。我一直在努力解决如何使用 MVC 来实现这一点。

我从主类中的所有逻辑/控制器开始,但已经开始将它们分成自己的类。现在我需要开始使用监听器和观察器来处理视图和控制器之间的消息。这导致我创建了许多接口并在多个地方循环通过我的听众来触发各种消息。但是那个循环代码不断重复(不是 DRY),所以我假设现在我应该创建不同类型的事件类,在我的视图中创建这些事件并在视图中使用单个方法将其触发给各种侦听器.

更新:可以说,这无关紧要,但我使用的是 SWT,而不是 Swing。

4

6 回答 6

9

我遇到了同样的问题:编写一个(非平凡的)摇摆应用程序确实需要大量的纪律,因为所有的侦听器和事件以及异步处理很快就构成了一大堆不可维护的代码。

我发现经典的 MVC 是不够的,你必须研究更具体的模式,比如Presentation Model等。我发现在应用于桌面应用程序时涵盖这种模式的唯一一本书是Scott Delap 的Desktop Java Live。虽然大多数 Swing 书籍都涉及解决特定问题的技术(如何制作无网格 jtable、如何实现圆形按钮……),但 Delap 的书将帮助您构建中型 Swing 应用程序、最佳实践等.

于 2008-10-05T23:16:00.240 回答
2

几乎任何 java、eclipse、netbeans 的摇摆书都应该能成功。

1) 免费 --- Thinking in Java ( http://mindview.net/Books/TIJ/DownloadSites )
2) CORE java , vol 1 and 2
3) Swing hacks : 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) eclipse 富客户端编程 - - http://www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612

希望这可以帮助。

BR,
~A

于 2008-10-03T21:02:00.073 回答
2

使用 C# 而不是 Java,但 Jeremy Miller 有很多关于桌面应用程序和 MVP/MVC的帖子(以及一大堆其他相关内容)。

于 2008-10-03T21:24:48.517 回答
1

只是为了投入我的 2 美分,我推荐这本书Head First Design Patterns。它对 MVC 模式(在 Java 中)有很好的解释。它建立在书中也讨论过的其他设计模式之上,例如 MVC 中使用的观察者、策略和组合。

我读过的最好的 MVC 教程。强烈推荐。

于 2008-10-07T07:55:31.453 回答
0

不要忘记 Swing 教程;例如摇摆事件教程

请记住 SwingWorker,或在单独的工作线程中处理事件。无论如何,我都不是 Swing 方面的专家,但我知道 Java 桌面应用程序的许多感知缓慢是由于在事件线程中完成的工作。如果这样的工作需要一些时间,则整个 GUI 将无响应。事后很难修复,如果你牢记这一点,就不是那么难做对了。

至于书籍,我发现 Cay Horstmann 和 Gary Cornell 的 Core Java 系列非常适合阅读。然而,它是关于 Java(包括 Swing)而不是关于 MVC。

于 2008-10-03T21:21:14.730 回答
0

我需要在上面的条目中添加免费的 BOOK——THINKING IN JAVA 讨论 OOP、MVC 以及 Swing。不过,不确定它是否讨论了 MVC 的各种实现。

于 2008-10-03T22:16:58.533 回答