Galera estou querendo iniciar a construção de um sistema comercial em java desktop ,mais não sei como é que eu posso dividir os pacotes, tipo, interface grafica com funcionalidades e por ai vai. Alguem poderia me dá uma ajuda nesse ponto.
Duvidas sobre inicio de projeto
6 Respostas
Procure sobre os Padrões de Projetos (Design Patterns) principalmente MVC, DAO, Observer
São padrões fundamentais para o desenvolvimento de uma aplicação.
A organização pode fluir de acordo com os modulos do sistema.
[]'s
Bem… eu costumo dividir por “tipos de dados”.
Por exemplo vou trabalhar com dados de funcionarios da empresa:
#com.org.sistema.funcionario //classes de negocio
- Funcionario.class
- FuncionarioDao.class
- FuncionarioController.class
- Funcionario.Service.class
#com.org.sistema.funcionario.gui //classes de interface - FuncionarioPesquisa.class
- FuncionarioCadastra.class
É +/- isso que eu faço.
Não sei se existe padrões ou guidelines para definição dos pacotes.
Tu podes separar por características ou semelhanças.
Por exemplo: estruturas de dados, regras de negócios, interfaces,…
Exemplo:
com.empresa.sistema.ED - para as estruturas de dados
com.empresa.sistema.RN - para as regras de negócio
com.empresa.sistema.GUI - para interfaces
e assim por diante.
Mas a melhor dica mesmo é dar uma olhada nos Padrões de Projetos (Design Patterns), como disse o Rafael (Felagund). Eu indicaria o uso do FAÇADE.
Até mais,
Usa o MVC com DAO.
MVC = Modelo, Visão e Controle
No pacote Visao você coloca as telas com swing e etc
No pacote Modelo Você pode colocar os Beans (Classe com atributos, gets e sets)
No patote controle você vai pegar os dados que estão na tela (visão) realizar a lógica, e enviar para o modelo. Também envia a resposta para a tela.
No pacote DAO você vai criar as classes para operações com o banco de dados. Modelo -> Banco.
Assim que eu uso.
No pacote Modelo Você pode colocar os Beans (Classe com atributos, gets e sets)
Hum… é mais indicado ficar no modelo ou no controle os gets e sets?
Po Dina,
no Modelo! No Controle vc vai utilizar os valores atravez dos gets e inserir os resultados atravez dos sets.
Por exemplo (Bem tosco):
package modelo;
public class Numero
{
private int a;
private int b;
private int resultadoSoma;
private int resultadoSubtracao;
public Numero()
{
a = 1;
b = 2;
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
public int getResultadoSoma() {
return resultadoSoma;
}
public void setResultadoSoma(int resultadoSoma) {
this.resultadoSoma = resultadoSoma;
}
public int getResultadoSubtracao() {
return resultadoSubtracao;
}
public void setResultadoSubtracao(int resultadoSubtracao) {
this.resultadoSubtracao = resultadoSubtracao;
}
}
package controle;
import modelo.Numero;
public class Calcular
{
public static void main(String args[])
{
//Calcular Soma
Numero n = new Numero();
n.setResultadoSoma(n.getA() + n.getB());
//Calcular Subtração
n.setResultadoSubtracao(n.getA() - n.getB());
}
}
Abraço.