Como evitar o acoplamento do View e do Controller no Swing
Eu recentemente me deparei com um problema ao tentar implementar o Model-View-ControllerBalanço.
Eu tenho uma classe de GUI que consiste em sub-painéis, e esses sub-painéis consistem em outros sub-painéis. Agora, em um desses painéis sub-sub existe umJButton
. NoActionListener
por estaJButton
Eu quero chamar um método no controlador. Para fazer isso eu precisaria passar o controlador profundamente nas entranhas da GUI para o sub-sub painel onde oJButton
reside. Então, neste painel sub-sub eu precisaria anexar umActionListener
aoJButton
e preencha oactionPerformed()
chamando o método que eu queria chamar no controlador.
Tenho certeza que todos vocês veem o problema. Existe alguma boa maneira de evitar passar o controlador profundamente nas entranhas da GUI.
Meu único pensamento foi fazer com que o controlador fosse um Singleton para desvinculá-lo da visão, mas ouvi dizer que os singletons geralmente são maus.
Qualquer conselho sobre este assunto seria muito apreciado.