Duvida com o modelo MVC

8 respostas
analyser

Olá pessoa estou com algumas duvidas sobre o modelo mvc.

  1. Este é um modelo divido em camadas certo? 3 camadas (view, controller, model)

  2. Tenho uma aplicação desktop, onde implantei o modelo mvc, um exemplo é o cliente, onde cliente uma classe java beans, um classe DAO, e minha interface swing com os actions, isso seria um modelo mvc??

  3. Como posso cricar uma classe controller, que vai controlar os botoes que estao na minha view?/

Bem se meu intendimento estiver certo eu criei sim um modelo MVC em camadas, pois a minha interface swing(view) possui os actions(Controller) e cria um objeto para a classe DAO(model) que persiste ele, é isso mesmo??

Obrigado a todos

8 Respostas

luistiagos

Pense assim o modelo MVC e um modelo que vai dividir sua parte de view(onde o usuario ve apenas o que esta na tela) controle(onde vc faz toda a logica de negocio) e modelo(onde faz os acessos a base de dados) primeiro em sua view vc so ira ter nela componentes de visualização… botoes textarea e os demais elementos que comporte somente a vizualização… quando o usuario por exemplo clicar em um botão a regra de negocio que tera na ação de clicar no botão não sera implementado na classe que contem a view… e sim em uma classe control… podera usar um pattern delegate que seria uma classe singleton que vc intanciaria e chamara o metodo certo na ação do clicar no botão… passando os parametros desejados por exemplo o conteudo de um textfield agora la em sua classe singleton de controle vc tratara o parametro passado da forma que desejar… vc fara as regras de negocio para ele… apos isto vc
vc chamara um dao… que tambem seria um singleton este dao contem a logica para a manipulação de dados no banco… inserir, alterar, remover, buscar… etc… este e um exemplo bem tosco de ultilização de MVC…
na base pense o seguinte o MVC é algo para vc ter um baixo acoplamento e poder rodar sua aplicação em diferentes ambientes… por exemplo se vc quiser migrar sua aplicação desktop para web ou celular vc não vai precisar alterar as regras de negocio e nem de banco apenas vai mudr sua view… o mesmo ocorre se vc resolver mudar seus acessos a dados… se estiver usando um bd e querer gravar seus dados em arquivos ou fazer transações com um mainframe ou outro sistema so modificara seu model sem mecher na view e na control…
espero ter lhe ajudado…

analyser

luistiagos:
Pense assim o modelo MVC e um modelo que vai dividir sua parte de view(onde o usuario ve apenas o que esta na tela) controle(onde vc faz toda a logica de negocio) e modelo(onde faz os acessos a base de dados) primeiro em sua view vc so ira ter nela componentes de visualização… botoes textarea e os demais elementos que comporte somente a vizualização… quando o usuario por exemplo clicar em um botão a regra de negocio que tera na ação de clicar no botão não sera implementado na classe que contem a view… e sim em uma classe control… podera usar um pattern delegate que seria uma classe singleton que vc intanciaria e chamara o metodo certo na ação do clicar no botão… passando os parametros desejados por exemplo o conteudo de um textfield agora la em sua classe singleton de controle vc tratara o parametro passado da forma que desejar… vc fara as regras de negocio para ele… apos isto vc
vc chamara um dao… que tambem seria um singleton este dao contem a logica para a manipulação de dados no banco… inserir, alterar, remover, buscar… etc… este e um exemplo bem tosco de ultilização de MVC…
na base pense o seguinte o MVC é algo para vc ter um baixo acoplamento e poder rodar sua aplicação em diferentes ambientes… por exemplo se vc quiser migrar sua aplicação desktop para web ou celular vc não vai precisar alterar as regras de negocio e nem de banco apenas vai mudr sua view… o mesmo ocorre se vc resolver mudar seus acessos a dados… se estiver usando um bd e querer gravar seus dados em arquivos ou fazer transações com um mainframe ou outro sistema so modificara seu model sem mecher na view e na control…
espero ter lhe ajudado…

Olá, ajudou muito, mais o mvc é um divisão em camadas, essa é uma das minhas duvidas, e tenho outra, o que é singleton e como fazer esse delegate, de um exemplo tosco aqui so pra ter um ideia, sou novo ainda em designer patnners.

cv1

Cara, aqui tem mais informacao que alguem vai possivelmente aguentar querer saber sobre MVC:

sergiotaborda

Alguém poderia explicar que :

  1. MVC não é divisão em camadas

  2. MVC não é divisão em pacotes

  3. Implementar DAO não é implementar o model do MVC

  4. MVC implica em eventos

luistiagos

Um Singleton é um pattern que te deixa instanciar apenas uma vez determinada classe… ele te retorna apenas uma instancia… e não deixa vc instanciar a classe mais de uma vez… exemplo:

class Singleton{

private static Singleton instance;

private Singleton(){}

public static Singleton getInstance(){
    if(instance == null){

}
}

}

luistiagos

Um Singleton é um pattern que te deixa instanciar apenas uma vez determinada classe… ele te retorna apenas uma instancia… e não deixa vc instanciar a classe mais de uma vez… exemplo:

class Singleton{

private static Singleton instance;

private Singleton(){}

public static Singleton getInstance(){

if(instance == null){

instance = new Singleton();

}

return instance;

}
public static void ola(){

System.out.println(Ola);

}

}

invokando o metodo ola do singleton:
Singleton.getInstance().ola();

Um delegate seria um singleton com varios metodos estaticos que podem receber um parametro executar a regra de negocio e invocar um metodo de outro singleton como um DAO por exemplo…

pcalcado

Nãããããããããããããããããããão :slight_smile:

http://fragmental.com.br/wiki/index.php?title=MVC_e_Camadas

O Controlle não processa regras de negócios, ele apenas despacha para quem o faz. Model não é persistência, é onde ficam todos os seus objetos de negócio.

Fora que não há motivo para usar Singletons além da necessidade de não poder existir mais de uma instância de um objeto. Não use Singletons fora deste contexto (faça uma bsuca no fórum e leia 353454 tópicos sobre isso).

E

Alguém, por acaso, teria um exemplo implementando MVC?
Cosinhas básica mesmo…

Criado 6 de junho de 2007
Ultima resposta 12 de jun. de 2007
Respostas 8
Participantes 6