我正在寻找有关桌面上MVC的书籍推荐。如果他们使用Java,那就是奖金。
一些背景: 我正在用Java编写桌面应用程序。它是一个音频应用程序,具有许多视图和一个称为库的中央模型,其中包含播放列表,效果列表和用于组织它们的文件夹结构。在这个应用程序中,我想为各种用户操作提供菜单,上下文菜单和拖放支持。我一直在努力解决如何使用MVC实现这一目标。
我从主类中的所有逻辑/控制器开始,但已经开始将它们分离到自己的类中。现在我需要开始使用侦听器和观察器来处理视图和控制器之间的消息。这导致我创建了许多接口,并在几个地方通过我的监听器循环以触发各种消息。但是循环代码不断重复(而不是DRY),所以我假设现在我应该创建不同类型的Event类,在我的视图中创建这些事件,并在视图中使用单个方法将其发送给各种侦听器
更新: Arguabley它应该没关系,但我使用的是SWT,而不是Swing。
答案 0 :(得分:9)
我遇到了同样的问题:编写一个(非平凡的)swing应用程序确实需要很多纪律,因为所有的侦听器和事件以及异步处理对于大量不可维护的代码来说非常快。
我发现经典的MVC还不够,你必须研究更具体的模式,如Presentation Model等。当我应用于桌面应用程序时,我发现的唯一涵盖此模式的书是Desktop Java Live,作者是Scott Delap。虽然大多数摇摆书都涉及解决特定问题的技巧(如何制作无格式jtable,如何实现圆形按钮,......),Delap的书将帮助您构建中型摇摆应用程序,最佳实践等
答案 1 :(得分:2)
几乎任何java,eclipse,netbeans摇摆书都应该诀窍。
1)自由---用Java思考(http://mindview.net/Books/TIJ/DownloadSites)
2)CORE java,vol 1和2
3)摇摆黑客: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
答案 2 :(得分:2)
在C#中而不是Java,但是Jeremy Miller有关于桌面应用程序和MVP / MVC(以及其他一些相关内容)的bunch of posts。
答案 3 :(得分:1)
只要投入2美分,我推荐书Head First Design Patterns。它对MVC模式有很好的解释(在Java中)。它建立在本书中讨论的其他设计模式的基础上,如MVC中使用的Observer,Strategy和Composite。
我读过的最佳MVC教程。强烈推荐。
答案 4 :(得分:0)
不要忘记Swing教程;例如Swing Events tutorial。
请记住SwingWorker,或在单独的工作线程中处理事件。我不是任何关于Swing的专家,但我知道Java桌面应用程序的许多感知缓慢是由于在事件线程中完成的工作。如果这样的工作需要一些时间,整个GUI都没有响应。之后很难解决,如果你记住这一点,那就不是很难做到了。
至于书籍,我发现Cay Horstmann和Gary Cornell的Core Java系列非常好读。然而,它是关于Java(包括Swing)而不是关于MVC。
答案 5 :(得分:0)
我需要在上面的条目中添加 JAVA中的免费书籍 - 思考谈论OOP,MVC以及Swing。但不确定它是否讨论了MVC的各种实现。