Olá pessoal, estou começando a desenvolver o sistema para o meu trabalho de conclusão de curso na faculdade, o sistema que eu irei desenvolver é um sistema gerador de mapas temáticos com base em arquivos Shapefile, bom pra falar a verdade a lógica para gerar os mapas já está feita.
Irei utilizar a linguagem Java e a aplicação será para Desktop, as minhas dúvidas é como escolher a melhor arquitetura para desenvolver o sistema, particularmente eu escolhi o MVC, pois achei interessante a maneira pela qual ele separa a aplicação.
Alguém pode me indicar outra arquitetura que também é muito utilizada para o desenvolvimento de softwares em Java para Desktop?
Porque o meu maior MEDO é que a aplicação fique com o código TODO MISTURADO por ex: código de lógica misturado com código de criação de interfaces, eu quero desenvolver um sistema no qual o código fique fácil de alterar e fácil compreensão.
Bom amigo não sei qual curso vc está fazendo mais é bem interessante seu projeto.Você deve estar usando java estruturado, se usar java orientado a ojetos seu codigo ficará muito melhor e vc usára bem menos linhas, visto que a OO facilita a reutilização de código, e seu código ficará todo organizado em classes.Espero ter te ajudado…
bom estou desenvolvendo Orientado a Objetos porém a minha dúvida é escolher a melhor arquitetura para que a minha aplicação fique separada entre a LÓGICA e a INTERFACE
Bom, se vc quer separar lógica de criação de componentes, o MVC não serve para isto!
Você pode criar uma “camada” de serviço (Service) e, caso haja acesso a BD, uma “camada” de acesso a dados (DAO). Este é um padrão amplamente utilizando por diversas aplicações.
O MVC é para separação entre Modelo, Visualização e Controladora, sendo que esta última teria o acesso ao Service e o Service ao DAO.
O modelo MVC é útil tanto para Web quanto para Desktop, ou para Mobile. E a idéia do MVC é justamente essa, separar a lógica de negócios da lógica de apresentação (visual).
Existem outros padrões de arquitetura, porém, eu não tenho conhecimentos suficientes para dizer qual é o mais eficiente para sua aplicação.
Eu uso MVC em TODOS projetos Web/Desktop que desenvolvo, e ouso a dizer que ele é o mais usado (pelo menos por mim)
Bem observado, recentemente eu peguei um código fonte de um sistema para estudar, e notei que existia uma camada de Serviço (Service Layer) , achei a idéia interessante, o Controlador chamar o Service e não o Modelo diretamente.
Alguém poderia citar as vantagens/desvantagens de se utilizar um Service Layer juntamente com o MVC ?
fredericoengels, o MVC é um modelo de front-end. Quando você usa uma camada de serviço, você abstrai a lógica de negócios da camada de apresentação (onde reside o V e o C do MVC). O M (model) seria o seu bean, entity ou qualquer outra coisa com propriedades e métodos de acesso (getters e setters).
Por exemplo, Struts, Struts2, Spring MVC, JSF são frameworks MVC e usados para apresentação de dados!
Ola a todos, estou com um pequeno problema com a criação de um login par uma aplicação com DB, será que voçês poderiam mim dar uma força :?:
podem ser links de sites ou tutoriais.valeu até a vista!!!
Eu colocaria Service e DAO como uma única camada. Não deixe seu projeto mais complexo do que ele precisa ser, a menos que você tenha intenção de transformá-lo em algo open-source, criar um produto ou algo do tipo. Service + DAO é uma das maiores lendas que existem no mundo Java, todo mundo faz no automático, mas nem sempre é necessário separá-los…