estou desenvolvendo uma agenda, em java, pois estou iniciando na linguagem.
pensei em criar as seguintes classes:
Pessoa -> terá os dados dos contatos da agenda
BancoDados -> conecta e fecha a conexão ao banco de dados
Agenda -> funcionalidades da agenda como inserir um contato, apagar um contato. esta, extende a BancoDados
mas depois, pensei em criar um método dentro de agenda, para conectar ao banco de dados, e nao criar uma classe BancoDados
minha pergunta é:
neste caso, qual seria a melhor estruturação das classes?
alguma das 2 maneiras que citei, ou outra?
Então Juliano, as duas formas são válidas. Tudo é válido, desde que funcione.
Tem uma classe que cuida só do banco é interessante, principalmente se você tiver mais de uma classe q acesse o banco. Sendo assim, é realmente interessante tem uma classe só para o banco, por 2 motivos:
1- Esse é a idéia qdo se cria uma classe. Que cada classe tenha UMA função específica.
2- Você não sabe quanto essa sua agenda pode crescer e agregar funcionalidades. Entao, ter um esquema de classes bem montado, irá facilitar isso.
Mas, se isso é apenas um teste, onde a única coisa que você quer aprender é programar em Java, e além disso, quer algo que seja além de tudo, simples de entender, entao nao há problema em fazer isso tudo em uma unica classe.
[quote=“julioromano”]estou desenvolvendo uma agenda, em java, pois estou iniciando na linguagem.
pensei em criar as seguintes classes:
Pessoa -> terá os dados dos contatos da agenda
BancoDados -> conecta e fecha a conexão ao banco de dados
Agenda -> funcionalidades da agenda como inserir um contato, apagar um contato. esta, extende a BancoDados
mas depois, pensei em criar um método dentro de agenda, para conectar ao banco de dados, e nao criar uma classe BancoDados
minha pergunta é:
neste caso, qual seria a melhor estruturação das classes?
alguma das 2 maneiras que citei, ou outra?
grato
Julio Romano[/quote]
Fala romano…
Não é uma boa você ter uma classe mãe responsável por abrir e fechar as conexões. O ideal é você ter uma classe que te retorne apenas uma instância do objeto Connection pré-configurada. Dê uma olhada no design pattern Singleton.
A sua classe Agenda teria que ser um DAO, que tem a responsabilidade de isolar todo acesso a dados (operações CRUD, etc…).
Romano, desse jeito tá legal… tem algumas coisas para modificar, mas só aumentaria a complexidade. Mantenha o foco nesse modelo e com o tempo você poderá ir adicionando outras coisas.