Estrutura Aplicação Java

Olá pessoal!!

Estou tentando criar uma aplicação simples em Java, para fins didáticos é claro, que consiste num cadastro de Clientes e outro de Produtos.
Criei a Base de Dados em FireBird 1.5
Bom, as dúvidas:

1. Devo separar a implementação da GUI, tratamento de eventos e conexão com a BD? Bom foi o que eu fiz...
2. De que maneira devo fazer isso, ou seja, que objetos devem se assossiar com quais objetos? 

Qualquer artigo, tutorial ou qualquer coisa são bem vindos!! 

Obrigado à todos!!

Procure alguns tiutoriais sobre Desing Pattern, por exemplo o DAO, irá te ajudar a esclarecer estas dúvidas, aqui no PJ tem bastante coisa sobre DP