Amigos, boa tarde.
Não sei ao certo se esta seria a área mais adequada, creio que sim. Caso não, peço que me desculpem.
Sou um desenvolvedor com pouca experiência em desenvolvimento orientado a objeto. Estamos criando um pequeno sistema em Java, mas nosso ERP principal é estruturado. Portanto, estou com algumas dificuldades para visualizar problema de arquitetura que me parecem um pouco básico.
O meu problema é o seguinte: em diversos Frames da aplicação, há a necessidade de identificação da empresa. Uma das formas para tal, é realizar uma pesquisa das empresas existentes. Portanto, clicando em um botão, abre uma outra frame que possibilita a seleção da empresa. Após a seleção desta empresa, seu código e nome devem ser inicializados em textfields da frame original.
Me parece inviável criar ActionListeners diferentes para essa mesma ação em cada Frame que necessite desta função. Ao mesmo tempo, não vejo como criar uma única classe sem referência ao Frame que disparou a ação, pois não teria como inicializar os textfields (ou teria?).
A minha ideia inicial seria criar uma interface comum para todas as frames que implementariam o serviço com um método do tipo setEmpresa(Empresa empresa). Desta forma, quando eu instanciasse um ActionListener, eu passaria como referência uma instância de uma frame que implementasse esta interface. Porém, com esta aproximação eu teria que criar uma referência dupla (addActionListener(new EmpresaListener(this))) e teria que criar uma interface para cada problema parecido que eu tivesse (como pesquisa de clientes e afins).
Alguém possui uma ideia de qual seria a melhor aproximação a se tomar?
Me desculpem pela ignorância, mas realmente não possuo muita experiência no design OO.
Desde já agradeço aos amigos e espero que possam me ajudar.
Abraços.