これは悪いことなのだろうか。ビューにコントローラーを認識させて、ビューで発生するアクションなどを委任できるようにし、コントローラーにビューを認識させます(これは明らかに正しいです)が、それは双方向の関係ですか? すべての作業をコントローラーに委譲し、ビューをクリーンに保ちたいので、ビュー内のコントローラーへの参照が必要です。
これは悪い設計ですか?もしそうなら、どうすれば別の方法で同じことを達成できますか?
コントローラ:
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();
}
}