如何更好地组织较小类的swing代码?

时间:2012-08-03 12:38:52

标签: java swing

Swing类的大小往往会增加,特别是在构建具有大量功能的页面时,这些功能总会导致复杂的代码,维护噩梦。

现在,我明白如果业务逻辑被分离出来,那么这些类中的许多都会急剧缩减。

我想知道的是如何对swing元素进行组件化,以便可以使用更简单的构建块构建页面?是否有一些示例应用程序,您已经看到在每个页面上都做了很多,而且几个类中没有遇到数千行?你建议打破UI代码的任何技术吗?

2 个答案:

答案 0 :(得分:2)

我发现Humble dialogbox文章中描述的技术相当不错。它也大大促进了测试。

答案 1 :(得分:2)

你意识到你提出了相互矛盾的要求吗?

  • 在每个页面上做了很多次
  • 并且不会遇到数千行

如果你有很多功能,你会有很多代码来执行这些功能吗?用户界面通常不是微不足道的,因为他们需要具备良好的可用性:

  • 以合理的方式布局
  • 根据当前UI状态启用/禁用组件
  • 验证用户输入
  • 与幕后的某些模型交换数据

这自然需要每个UI元素几行代码,有时候很多。 (代码行不应该在字面上,如果你使用一个与XML一起工作的框架,它也可能是某种元代码。)

抽象地说,你唯一能做的就是保持逻辑组织的混乱。干净地分开不同的任务。这可以通过将整个行为抽象到每个UI元素中来实现(该方法通常导致每个组件的特定子类或组件和行为的组合),或者通过将每个关注放入单独的类(例如,声明的Panel)所有组件,但启用/禁用,验证和数据绑定分为不同的类。)

这两种方法并没有真正减少代码量,但是它们限制了进入一个类的代码量。

最后,将您在许多地方找到的常见/类似代码分解出来(如果您已有现有代码网格,则采用“补救”方法)。