1

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

现在,我明白如果将业务逻辑分离出来,其中许多类将急剧缩小。

我想知道的是如何将swing元素组件化,从而可以用更简单的构建块来构建页面?您是否见过一些示例应用程序,它在每个页面上都做了很多工作,并且没有为几个类运行数千行?您建议使用哪些技术来分解 UI 代码?

4

2 回答 2

2

我发现Humble 对话框文章中描述的技术非常适合入手。它还极大地促进了测试。

于 2012-08-03T12:42:54.777 回答
2

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

  • 在每一页上都有很多作用
  • 并且不会遇到数千行

如果您有很多功能,您将有很多代码来执行所述功能?用户界面通常不是微不足道的,为了获得良好的可用性,他们需要:

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

这自然需要每个 UI 元素几行代码,有时甚至很多。(代码行不应按字面意思理解,如果您使用与 XML 等一起工作的框架,它也可能是某种元代码)。

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

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

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

于 2012-08-03T13:02:20.920 回答