Dúvida sobre desenvolvimento de sistemas

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.

Desde já obrigado

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…

estou fazendo ciência da computação…

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 amigo usa a MVC com Servlets ou JavaServer Pages as duas te possibilitam isso ok?Boa sorte…

A minha aplicação é para Desktop.

Existe alguma outra arquitetura para o desenvolvimento em Java para Desktop???..

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.

Entendeu?

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) :stuck_out_tongue:

@robertol

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! :smiley:

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!!!

Já vi algumas coisas utilizando MVP, mas não sou muito fã de Java para aplicações desktop.

Tem uma pagina do fowler sobre GUI Architetures

http://martinfowler.com/eaaDev/uiArchs.html

Se mudar de ideia sobre a linguagem recomendo .NET

PS: Alguns Xiitas vão me criticar sobre o .NET, mas hoje é a melhor opção para desktop.

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…