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

Java 如何更好地为较小的类组织swing代码?,java,swing,Java,Swing,Swing类的大小往往会增加,特别是在构建具有大量功能的页面时,这必然会导致复杂的代码,这是维护的噩梦 现在,我了解到,如果业务逻辑被分离出来,那么这些类中的许多将急剧缩减 我想知道的是如何对swing元素进行组件化,以便使用更简单的构建块构建页面?您是否看到过一些示例应用程序,它们在每个页面上都做了很多工作,并且在几个类中不会运行数千行?您有什么建议可以分解UI代码的技术吗?我发现本文中描述的技术从一开始就相当不错。它还大大简化了测试。我发现本文中描述的技术从一开始就相当不错。它还大大方便了测

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

现在,我了解到,如果业务逻辑被分离出来,那么这些类中的许多将急剧缩减


我想知道的是如何对swing元素进行组件化,以便使用更简单的构建块构建页面?您是否看到过一些示例应用程序,它们在每个页面上都做了很多工作,并且在几个类中不会运行数千行?您有什么建议可以分解UI代码的技术吗?

我发现本文中描述的技术从一开始就相当不错。它还大大简化了测试。

我发现本文中描述的技术从一开始就相当不错。它还大大方便了测试。

您意识到您给出了相互冲突的需求吗

  • 这在每一页上都很有用
  • 而且不会遇到成千上万条线
如果你有很多功能,你会有很多代码来执行这些功能?用户界面通常不是微不足道的,为了获得良好的可用性,他们需要:

  • 以一种好的、合乎逻辑的方式进行布局
  • 根据当前UI状态启用/禁用组件
  • 验证用户输入
  • 在幕后与某些模型交换数据
这自然要求每个UI元素有几行代码,有时甚至很多。(这里不应该按字面意思来理解代码行,如果您使用的是与XML等一起工作的框架,那么它也可能是某种元代码)

抽象地说,你能做的唯一一件事就是保持混乱有序。将不同的任务清晰地分开。这可以通过将整个行为抽象到每个UI元素(这种方法通常会为每个组件或组件和行为的组合生成一个专门的子类)或将每个关注点放在一个单独的类中来实现(例如,声明所有组件的面板,但启用/禁用、验证和数据绑定被分为不同的类)

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


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

您意识到您给出了相互冲突的需求吗

  • 这在每一页上都很有用
  • 而且不会遇到成千上万条线
如果你有很多功能,你将有很多代码来执行上述功能?用户界面通常不是微不足道的,为了获得良好的可用性,它们需要:

  • 以一种好的、合乎逻辑的方式进行布局
  • 根据当前UI状态启用/禁用组件
  • 验证用户输入
  • 在幕后与某些模型交换数据
这自然要求每个UI元素有几行代码,有时甚至很多(这里不应该按字面意思来理解代码行,如果您使用的框架使用XML等,它也可能是某种元代码)

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

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

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