问题描述
我遇到了同样的问题:编写(非平凡的)Swing应用程序确实需要很多纪律,因为所有的侦听器,事件和异步处理对于一大堆无法维护的代码来说确实很快。
我发现经典的MVC是不够的,您必须研究更具体的模式,例如Presentation Model等。当我发现有关适用于桌面应用程序的这种模式的唯一书籍是Scott Delap的《Desktop Java Live》。虽然大多数秋千书籍都涉及解决特定问题的技术(如何制作无网格jtable,如何实现圆形按钮等),但Delap的书将帮助您构建中等大小的秋千应用程序,最佳实践等。 。
解决方法
我正在寻找有关台式机上MVC的书籍的建议。如果他们使用Java,那将是一个好处。
一些背景:我正在用Java编写桌面应用程序。它是一个音频应用程序,具有许多视图,并且具有一个称为库的中央模型,该库具有播放列表,效果列表以及用于组织它们的文件夹结构。在此应用程序中,我希望具有菜单,上下文菜单以及对各种用户操作的拖放支持。我一直在努力使用MVC来实现这一目标。
我从主要课程中的所有逻辑/控制器开始,但已开始将它们分成各自的课程。现在,我需要开始使用侦听器和观察器来处理视图和控制器之间的消息。这导致我创建了许多接口,并在多个位置遍历我的侦听器以触发各种消息。但是该循环代码不断重复(不是DRY),所以我假设现在应该创建不同类型的Event类,在视图中创建这些事件,并在视图内使用单个方法将其触发给各种侦听器。
更新: 争论不应该太大,但是我使用的是SWT,而不是Swing。