Шаблон MVC со многими ActionListeners
Я пишу программу с графическим интерфейсом, используя шаблон проектирования MVC. У меня есть вопрос, касающийся использования ActionListeners.
Согласно шаблону MVC, все ActionListeners должны быть включены в контроллер. Обычно, как я полагаю, они будут реализованы во внутренних классах, как.
Однако в случае множества кнопок и т. Д. Хорошая ли идея переместить эти внутренние классы в отдельные файлы в одном пакете? Я знаю, что они больше не будут внутренними классами, так что это хороший дизайн? И так как мне нужно будет использовать локальную переменную из класса Controller, могу ли я просто установить для них доступ по умолчанию?
Класс контроллера:
public class Controller{
GoogleMaps gMaps = null; // model
GUI gui = null; // view
public Controller(GoogleMaps gMaps, GUI gui) {
super();
this.gMaps = gMaps;
this.gui = gui;
this.gui.addButtonDownListener(new ButtonDownListener(this));
}
}
Класс ButtonDownLister:
class ButtonDownListener implements ActionListener{
private BudgetController buttonDownListener;
public ButtonDownListener(BudgetController buttonDownListener) {
super();
this.buttonDownListener = buttonDownListener;
}
@Override
public void actionPerformed(ActionEvent e) {
// some ActionEvent handler
}
}
1 ответ
Может не быть идеальным MVC, но вы все равно можете иметь внутренний класс ActionListeners, который просто выполняет вызовы контроллера, который фактически выполняет работу.
Итак // some ActionEvent handler
все еще завершен в контроллере.