Logo Passei Direto
Buscar

APLIC LING PROGR ORIEN OBJETOS - MÓDULO COMPLEMENTAR III

Módulo sobre o padrão MVC que descreve Model, View e Controller e traz exemplo em Java: pacotes mvc.model, mvc.control e mvc.view; classe Aluno; ControladorAlunos (inserir, remover, pesquisar usando Map e JOptionPane); FormAluno (JFrame com action listeners).

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Este módulo refere-se à utilização do Padrão MVC (Model View Controller) nas aplicações.
Originalmente o Model-View-Controller foi criado como um padrão de projeto arquitetural desenvolvido para o ambiente de desenvolvimento Smalltalk, mas ele pode ser utilizado para qualquer aplicação interativa e em diferentes tipos de ambientes.
Model-View-Controller (MVC) é um padrão de arquitetura de software que tem como objetivo separar dados ou lógica de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Control). A idéia é permitir que uma mesma lógica de negócios
possa ser acessada e visualizada através de várias interfaces.
Na arquitetura MVC, a lógica de negócios (chamada aqui de Modelo) não sabe de quantas nem quais interfaces com o usuário estão exibindo seu estado.
Alterações feitas na interface não afetarão a manipulação dos dados, e estes poderão ser reorganizados sem alterar a interface do usuário. O model-view-controller resolve este problema por meio da separação das tarefas de acesso aos dados e lógica do
negócio da apresentação e interação com o usuário, introduzindo um componente entre os dois: o Controller.
Podemos descrever este padrão da seguinte forma:
 
Model - A representação "domínio" especifica da informação em que a aplicação opera.
- Por exemplo, aluno, professor e turma fazem parte do domínio de um sistema acadêmico.
- E comum haver confusão pensando que Model é um outro nome para a camada de domínio.
- Lógica de domínio adiciona sentido a dados crus como, por exemplo calcular se hoje e aniversario do usuário, calcular o total de impostos e fretes sobre um determinado carrinho de compras.
- Muitas aplicações usam um mecanismo de armazenamento persistente como, por exemplo, um banco de dados para armazenar os dados fornecidos pelo usuário.
- MVC não cita especificamente a camada para acesso aos dados, porque subentende-se que estes métodos estariam encapsulados pelo Model.
 
View - "Renderiza" o model em uma forma especifica para a interação, geralmente uma interface de usuário.
 
Controller - Processa e responde a eventos, geralmente ações do usuário, e pode invocar alterações no Model quando estas se fizerem necessárias.
 
De maneira prática aplicamos o MVC dividindo a aplicação em 3 pacotes básicos: Model, view, control. Iniciamos a aplicação pela classe Aluno no pacote model:
 
package mvc.model;
 
public class Aluno {
 
 private String nome;
 private String ra;
}
 
A próxima etapa é a criação da classe ControladorAlunos do pacote control, que é responsável pela interligação do modelo e a interface gráfica.
 
package mvc.control;
 import mvc.model.*;
import mvc.view.*;
 public class ControladorAlunos {
 private Map<String, Aluno> alunos = new HashMap<String, Aluno>();
 public void inserirAluno(String ra, String nome) {
 Aluno aluno = new Aluno();
 aluno.setRa(ra);
 aluno.setNome(nome);
 alunos.put(aluno.getRa(), aluno);
 JOptionPane.showMessageDialog(null, "Aluno inserido com sucesso!");
 }
 public void removerAluno(String ra) {
 if (alunos.containsKey(ra)) {
 alunos.remove(ra);
 JOptionPane.showMessageDialog(null, "Aluno removido com sucesso!");
 } else {
 JOptionPane.showMessageDialog(null, "Não existe aluno com esse RA!");
 }
 }
 public Aluno pesquisarAluno(String ra) {
 if (alunos.containsKey(ra)) {
 return alunos.get(ra);
 } else {
 JOptionPane.showMessageDialog(null, "Não existe aluno com esse RA!");
 return null;
 }
 }
}
 
E por fim criamos a classe FormAluno no pacote view, classe responsável pela entrada dos dados (interface gráfica):
 
public class FormAluno extends JFrame {
 //As declarações dos componentes visuais foram suprimidos, de maneira que facilite o entendimento da aplicação.
 
private JButton getJButtonInserir() {
 jButtonInserir.addActionListener(new java.awt.event.ActionListener() {
 public void actionPerformed(java.awt.event.ActionEvent e) {
 
 // solicita ao controlador que efetue a inclusão do aluno
 controlador.inserirAluno(jTextRa.getText(), jTextNome.getText());
 }
 });
 }
 return jButtonInserir;
 }
 
 private JButton getJButtonPesquisar() {
 jButtonPesquisar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {
 
// solicita ao controlador que efetue a busca pelo RA
 Aluno aluno = controlador.pesquisarAluno(jTextRa.getText());
// se encontrou um aluno com o RA
 if (aluno != null) {
// exibe as informações na tela
 jTextRa.setText(aluno.getRa());
 jTextNome.setText(aluno.getNome());
 }
 }
 });
 }
 return jButtonPesquisar;
 }
 
 private JButton getJButtonRemover() {
 jButtonRemover.addActionListener(new java.awt.event.ActionListener() {
 public void actionPerformed(java.awt.event.ActionEvent e) {
 
// solicita ao controlador que efetue a exclusão do aluno pelo RA
 controlador.removerAluno(jTextRa.getText());
 }
 });
 }
 return jButtonRemover;
 }
 public FormAluno() {
 super();
 initialize();
 
 controlador = new ControladorAlunos();
 }
}
 
Exercício 1:
A definição de que um sistema deve ser desenvolvido em três níveis é feita pelo padrão de projeto
A)
MVC (Model View Controller).
 
B)
MVC-Dev (Model Value Constructive Development).
 
C)
TMS (Time Milestones Setting).
 
D)
PMC (Project Main Controller).
 
E)
MCA (Model Classes Assignment).
O aluno respondeu e acertou. Alternativa(A)
Comentários:
Essa disciplina não é ED ou você não o fez comentários
Exercício 2:
Os softwares podem ser desenvolvidos utilizando-se vários modelos de arquitetura. Sobre esse assunto é correto afirmar:
A)
Na arquitetura MVC, o componente Model define o comportamento da aplicação. É ele quem interpreta as ações do usuário e as mapeia para chamadas ao Controller.
 
B)
Model-View-Controller (MVC) é um padrão de arquitetura de software equivalente ao modelo 3-tier, que visa separar a lógica de negócio da lógica de apresentação, não permitindo, porém, o desenvolvimento, teste e
manutenção isolados de ambos.
 
C)
O modelo em três camadas, derivado do padrão MVC, recebe esta denominação quando um sistema cliente-servidor é desenvolvido retirando-se a camada de negócio do lado do cliente.
 
D)
Na arquitetura MVC, a camada de Dados ou Persistência representa os dados da aplicação e contém as regras do negócio que governam o acesso e a modificação dos dados.
 
E)
O modelo cliente-servidor é baseado na ideia de realizar no servidor o processamento pesado, deixando para a máquina do cliente o processamento de recursos mais leves, normalmente necessários para acessar a parte da
aplicação que se encontra em execução no servidor.
O aluno respondeu e acertou. Alternativa(E)
Comentários:
Essa disciplina não é ED ou você não o fez comentários
Exercício 3:
Modelo MVC significa:
A)
Modo-View-Construtor.
B)
Modelo-View-Controlador.
C)
Modelo-Versão-Case.
D)
Módulo-Veri?cador-Controlador.
 
E)
Medida-Virtual-Concepção.
O aluno respondeue acertou. Alternativa(B)
Comentários:
Essa disciplina não é ED ou você não o fez comentários
Exercício 4:
Os softwares podem ser desenvolvidos utilizando-se vários modelos de arquitetura. Sobre esse assunto é correto afirmar:
A)
Na arquitetura MVC, o componente Model define o comportamento da aplicação. É ele quem interpreta as ações do usuário e as mapeia para chamadas ao Controller.
 
B)
Model-View-Controller (MVC) é um padrão de arquitetura de software equivalente ao modelo 3-tier, que visa separar a lógica de negócio da lógica de apresentação, não permitindo, porém, o desenvolvimento, teste e
manutenção isolados de ambos.
 
C)
O modelo em três camadas, derivado do padrão MVC, recebe esta denominação quando um sistema cliente-servidor é desenvolvido retirando-se a camada de negócio do lado do cliente.
 
D)
Na arquitetura MVC, a camada de Dados ou Persistência representa os dados da aplicação e contém as regras do negócio que governam o acesso e a modificação dos dados.
 
E)
O modelo cliente-servidor é baseado na ideia de realizar no servidor o processamento pesado, deixando para a máquina do cliente o processamento de recursos mais leves, normalmente necessários para acessar a parte da
aplicação que se encontra em execução no servidor.
O aluno respondeu e acertou. Alternativa(E)
Comentários:
Essa disciplina não é ED ou você não o fez comentários
Exercício 5:
Considere as afirmativas abaixo sobre a arquitetura de três camadas.
I – A arquitetura de três camadas é uma outra forma de designar a arquitetura MVC.
II – Nas aplicações Web, os módulos da camada intermediária rodam usualmente em um servidor de aplicações.
III – Toda a comunicação entre a camada de apresentação e a camada de dados tem de passar pela camada intermediária.
Está correto o que se afirma:
A)
I, apenas
 
B)
II, apenas
 
C)
I e II, apenas
 
D)
II e III, apenas
 
E)
I, II e III
O aluno respondeu e acertou. Alternativa(D)
Comentários:
Essa disciplina não é ED ou você não o fez comentários

Mais conteúdos dessa disciplina