gpt4 book ai didi

java - 使用 ActionListener(this) 是不好的做法吗

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:13 26 4
gpt4 key购买 nike

在对我的一个答案的评论回复中,Hovercraft

No, your suggestion will make things worse really, since by using this as the ActionListener, you're suggesting that he make his View also a Control, something that shouldn't be done in anything other than "toy" programs.

作为新手,我一直在使用“this”,但我不清楚为什么不鼓励这样做。有人可以解释/详细说明 Hovercraft 的答案或给出另一个答案吗?

评论-- https://stackoverflow.com/questions/18021509/how-can-i-call-method-with-a-string/18021674#18021674

最佳答案

这是因为 Swing 遵循 MVC 模式。如果您将 ControllerView 委托(delegate)给一个类,那么就会出错。另请阅读 Single Responsability Principle , 一个类只应该对一件事负责,否则你的类就好像一个无所不能的上帝

代替

public class MyJFrame extends JFrame implements KeyListener{
MyJFrame(){
this.addKeyListener(this); // sounds awful
}
}

使用这样的东西:

public class MyFrameView {

private JFrame frame;

MyFrameView(){
frame = new JFrame();
frame.addKeyListener(new MyKeyListener());
}

}

public class MyKeyListener implements KeyListener{

}

关于java - 使用 ActionListener(this) 是不好的做法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18150778/

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