Swing 类的大小往往会增长,特别是在构建具有很多功能的页面时,这总是会导致复杂的代码,是维护的噩梦。
现在,我明白如果将业务逻辑分离出来,其中许多类将急剧缩小。
我想知道的是如何将swing元素组件化,从而可以用更简单的构建块来构建页面?您是否见过一些示例应用程序,它在每个页面上都做了很多工作,并且没有为几个类运行数千行?您建议使用哪些技术来分解 UI 代码?
我发现Humble 对话框文章中描述的技术非常适合入手。它还极大地促进了测试。
你意识到你给出了相互矛盾的要求吗?
如果您有很多功能,您将有很多代码来执行所述功能?用户界面通常不是微不足道的,为了获得良好的可用性,他们需要:
这自然需要每个 UI 元素几行代码,有时甚至很多。(代码行不应按字面意思理解,如果您使用与 XML 等一起工作的框架,它也可能是某种元代码)。
抽象地说,你唯一能做的就是保持逻辑上的混乱。清晰地分离不同的任务。这可以通过将整个行为抽象到每个 UI 元素中来完成(这种方法通常会导致每个组件的专用子类或组件和行为的组合),或者将每个关注点放入单独的类中(例如,Panel 声明所有组件,但启用/禁用、验证和数据绑定都分为不同的类)。
这两种方法并没有真正减少代码量,但它们限制了进入一个类的代码量。
最后,找出您在许多地方找到的常见/相似代码(如果您已经拥有现有代码的网格,则采用“补救”方法)。