Olá, resolvi criar este tópico, pois estou desenvolvendo um software há um tempo, e aprendi java por conta própria, e nunca estudei nenhum livro sobre padrões de pogramação como as apostilas fj da Caelum.
Como eu sempre gostei de “fuçar” em códigos e etc… e gosto mto de jogos, percebi que todos possuem uma classe chamada ‘engine’ onde praticamente tudo que envolve lógica esta inserido, então em minha mente ficou gravado isso, pois engine=motor, ou seja o motor que faz funcionar toda a ‘coisa’.
Agora em meu software, a primeira coisa que fiz ao criar um novo projeto no netbeans, foi criar a classe engine no pacote principal, depois criei outro pacote e fiz a classe que faz conexão com o bd e dentro desse pacote criei outra classe onde faço os comandos SQL, entao meu software ficou dividido desse modo(em termos de classes):
Pacote Principal:
->engine.java
->Login.java
->Menu_Principal.java
->...outros forms.
Pacote Banco:
->Conecta_BD.java
->Comandos_BD.java
->Propriedades_BD.properties
Pacote Adicionais:
->SplashScreen.java
Pacote Admin:
->Login.java
->Admin_Menu.java
->...outros forms
No pacote Principal tenho forms voltados para usuarios comuns
No pacote Admin tenho forms restritos a administradores
No pacote Banco tenho codigos relacionados a MySQL
No pacote Adicionais tenho a SplashScreen do sistema
Porém, ao longo do meu processo de programação axo que me exaltei e nao segui minhas próprias regras de toda a lógica estar inserida no engine, entao no começo eu registrava tudo la antes de executar algo, entao por exemplo no login, eu verificava se os campos estavam preenchidos e etc, e no caso tru eu mandava pro pacote Banco na classe Comandos_BD.
Porem, em alguns forms eu acabei realizando verificações dentro da própria classe antes de verificar no engine, e em algumas vezes ao programar a ação de um botão, que simplesmente deveria checar algo no BD, eu primeiro envia-va á um método no engine, e esse método enviava os parametros a outro metodo do Comandos_BD ao qual retornava true ou false pro engine, e o engine enviava a classe o form, entao ficou esse caminho gigante.
E também algumas vezes realizei autenticação de itens selecionados em ComboBoxs dentro do form, ao inves de fazewr pelo engine, assim como no Comandos_BD fiz alguns sets de modo direto em classes, quebrando a regra de que o Comandos_BD deveria somente realizar selects/inserts/updates no MySQL.
Então após toda essa apresentação e desabafo, pergunto a vocês, estou programando corretamente, ou devo re-estruturar todo o código?