gpt4 book ai didi

java - 重写代码,在不改变其行为的情况下提高其可读性

转载 作者:行者123 更新时间:2023-12-01 20:51:18 28 4
gpt4 key购买 nike

公开课A2{

public class B implements ActionListener{

@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Fing");
}
}

public class C implements ActionListener{

@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Fang");
}
}

public class D implements ActionListener{

@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Foom");
}

}

public A2(){
JButton a = new JButton("Fing");
JButton b = new JButton("Fang");
JButton c = new JButton("Foom");

a.addActionListener(new B());
b.addActionListener(new C());
c.addActionListener(new D());


}

public static void main(String[] args) {
A2 a2 = new A2();

}

我遇到的问题很简单,但也很复杂。我希望它能够缩短代码而不修改其功能。例如,代码向许多actionlisteners和actionperformed显示,我试图将其变成一个类,取出System.out.println();并在其上输入字符串值。然而,编码并不是以这种简单的方式工作的。请帮助我简化这段代码并提高可读性。谢谢。

最佳答案

不可能知道你可以做什么,我个人是自记录代码的粉丝,所以有时,你在尝试优化解决方案时需要小心。

我的第一个想法可能是从 Action's API 开始,它允许您设计一个独立的工作单元

public class CommonAction extends AbstractAction {

public CommonAction(String name) {
putValue(NAME, name);
putValue(SHORT_DESCRIPTION, "This is a tool tip for " + name);
}

@Override
public void actionPerformed(ActionEvent e) {
System.out.println(getValue(NAME));
}

}

如果需要,您可以进一步扩展它以提供更多自定义,覆盖 actionPerformed 方法,但这取决于您。

然后您只需应用到您的按钮...

public class A2 {

public A2() {
JButton a = new JButton(new CommonAction("Fing"));
JButton b = new JButton(new CommonAction("Fang"));
JButton c = new JButton(new CommonAction("Foom"));
}

}

或者您的菜单或按键绑定(bind),Action 是一个相当灵活的 API,受到许多其他组件的支持

关于java - 重写代码,在不改变其行为的情况下提高其可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43420212/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com