Window 监听器和动作监听器合二为一 class JAVA
Window Listener and Action Listener in one class JAVA
我在java中有程序,并且有GUI。我必须为几帧创建动作和 window 听众。我为每一帧创建一个监听器 class。像这样:
public class Listener implements ActionListener, WindowListener {
HERE ALL NEEDED METHODS BY THIS TWO INTERFACES
}
我的问题是这是好的解决方案吗?或者我应该为此创建两个单独的 classes?我在一个 class 中创建它,因为我在 WindowListener 的方法中只有几行代码。
这是一个很好的解决方案,如果你尊重https://en.wikipedia.org/wiki/Single_responsibility_principle
如果你想在动作事件和window事件上做同样的事情,一个class是一个不错的选择。
示例:
public class LoggerListener implements ActionListener, WindowListener {
...
@Override
public void actionPerformed(ActionEvent e) {
logger.log("Action performed!");
}
...
@Override
public void windowOpened(WindowEvent e) {
logger.log("Window opened!");
}
}
但是如果你想做不同的事情(例如,在执行操作时记录并在打开某些 window 时显示消息),最好创建两个不同的 classes .一个可以扩展 WindowAdapter
,另一个可以实现 ActionListener
.
我可能会这样做:
public class Listener extends WindowAdapter implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
}
}
更少的代码行,因为您不必强制实施所有 WindowListener
方法。
我在java中有程序,并且有GUI。我必须为几帧创建动作和 window 听众。我为每一帧创建一个监听器 class。像这样:
public class Listener implements ActionListener, WindowListener {
HERE ALL NEEDED METHODS BY THIS TWO INTERFACES
}
我的问题是这是好的解决方案吗?或者我应该为此创建两个单独的 classes?我在一个 class 中创建它,因为我在 WindowListener 的方法中只有几行代码。
这是一个很好的解决方案,如果你尊重https://en.wikipedia.org/wiki/Single_responsibility_principle
如果你想在动作事件和window事件上做同样的事情,一个class是一个不错的选择。
示例:
public class LoggerListener implements ActionListener, WindowListener {
...
@Override
public void actionPerformed(ActionEvent e) {
logger.log("Action performed!");
}
...
@Override
public void windowOpened(WindowEvent e) {
logger.log("Window opened!");
}
}
但是如果你想做不同的事情(例如,在执行操作时记录并在打开某些 window 时显示消息),最好创建两个不同的 classes .一个可以扩展 WindowAdapter
,另一个可以实现 ActionListener
.
我可能会这样做:
public class Listener extends WindowAdapter implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
}
}
更少的代码行,因为您不必强制实施所有 WindowListener
方法。