Недавно я столкнулся с проблемой при попытке реализовать Model-View-Controller в Swing.
У меня есть класс графического интерфейса, который состоит из подпанелей, а эти подпанели состоят из других подпанелей. Теперь в одной из этих под-подпанелей есть JButton
. В ActionListener
для этого JButton
я хочу вызвать метод в контроллере. Чтобы сделать это, мне нужно было бы передать контроллер глубоко в недра GUI на под-под-панель, где находится JButton
. Затем в этой под-подпанели мне нужно будет присоединить ActionListener
к JButton
и заполнить actionPerformed()
, вызвав метод, который я хотел вызвать в контроллере.
Я уверен, что вы все видите проблему. Есть ли хороший способ избежать передачи контроллера глубоко в недра GUI.
Моей единственной мыслью было сделать контроллер Singleton, чтобы отделить его от представления, но я слышал, что Singleton обычно злые.
Любые советы по этому вопросу будут высоко оценены.