我想知道这是否不好;让视图了解控制器,以便它可以委托视图中发生的操作等,并让控制器了解视图(这显然是正确的),但是我想知道这是双向关系是否正确?我想在视图中引用控制器,因为我想将所有工作委托给控制器并保持视图清洁。
这是一个糟糕的设计吗?如果是这样,我可以做些什么不同的事情并仍然达到同样的效果?
控制器:
public class Controller {
private View view;
public Controller() {
view = new View(this);
}
public void doSomeButtonAction() {
// More code...
}
}
看法:
public class View implements ActionListener {
private Controller controller;
private Button button;
public View(Controller controller) {
this.controller = controller;
// Code for initializing button reference etc.
}
@Override
public void actionPerformed(ActionEvent event) {
controller.doSomeButtonAction();
}
}