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