Java: представление (GUI) и взаимодействие контроллеров с MVC? - PullRequest
2 голосов
/ 04 декабря 2011

Как наиболее эффективно соединить представление и контроллер в Java-приложении MVC-esque.В настоящее время я делаю следующее:

  1. Контроллер создает представление и передает себя в представление в качестве параметра:

    MyView view = new MyView (this);

  2. Вид имеет ActionListener с для кнопок.ActionListener мало что делает, но запускает действие в контроллере:

    private class ButtonAListener implements ActionListener
      {
    
          @Override
          public void actionPerformed(ActionEvent arg0) {
              controller.clickedButtonA();
          }
    
      }
    

Работает нормально, но приемлемо ли это?Например, если в представлении нажата кнопка, ActionListener передает эту информацию в контроллер, который выполняет некоторые вычисления, и возвращает команду для обновления представления.

1 Ответ

2 голосов
/ 04 декабря 2011

ИМХО это приемлемо. Я думаю, что любое решение в порядке, пока не происходит жесткой связи. В зависимости от того, какую библиотеку GUI вы используете (AWT, SWT, Swing ..), подходят разные классы. Btw. Вы должны проверить адаптеры (если вы их еще не знаете): http://blogs.oracle.com/CoreJavaTechTips/entry/listeners_vs_adapters

Я бы рекомендовал перенести создание представления из контроллера. Если представление и контроллер должны быть разделены (и в этом вся суть), у контроллера должен быть только метод установки (или другие механизмы внедрения зависимостей). Я думаю, у вас должен быть класс запуска, который создает контроллер и представления, а затем соединяет их вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...