Buscar

questões discursivas de PROVAS de Padrões de Projeto De SW

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Padrões de projeto estão relacionados a diferentes níveis de abstração no desenvolvimento de aplicações orientadas a objetos, podendo aparecer ao longo de todo ciclo de vida de um sistema. Os padrões são diversos, por exemplo, padrões arquiteturais, padrões de análise, padrões de projeto e padrões de código e padrões estruturais.
Explique o que são padrões estruturais e dê exemplo de dois deles.
Padrões Estruturais definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mutua. Há sete padrões estruturais GoF: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy.
Os métodos polimórficos utilizam os conceitos de overloading e overrinding. Apresente a diferença entre os dois conceitos.
O conceito OVERLOADING é a sobrecarga dos métodos: define vários métodos de mesmo nome com assinaturas diferentes.
O conceito OVERRIDING altera o comportamento do método na subclasse, mantendo a mesma assinatura, com funcionalidade diferente.
Se você deseja controlar o acesso e criação, única, de uma classe. Qual o method deve usar?
Singleton, pois ele controla a execução do método NEW.
Considere que o sistema precisa acessar em uma base de dados feita com software antigo e que se corre o risco de provocar futuras manutenções no novo sistema. Que padrão Grasp podemos utilizar para se isolar os métodos que acessam esse banco?
O padrão Variações protegidas permite definir uma definir classe artificial com o objetivo é atribuir responsabilidade a um objeto intermediário para encapsular este métodos de forma que eles não sejam diretamente acoplados ao sistema
Decorator tem como principal objetivo a decoração de classes em tempo de execução, isto é, adicionar novos produtos e/ou novas responsabilidades à objetos dinamicamente sem alterar o código das classes existentes. Descreva um exemplo que represente esse padrão.
Em uma janela pode-se adicionar objetos como barras de rolagem, caixas de texto, labels, etc. Pode-se criar uma classe JanelaDecorador que será estendida pelos decoradores que irão inserir propriedades na janela. Podendo incluir barra vertical, horizontal e para cada criar outra classe decorador, inserindo características novas.
Baixo acoplamento é um princípio-chave na Orientação objetos. O que deve ser feito para garantir o baixo acoplamento na definição dos objetos/classe/subsistema/sistema.
Deve-se manter os objetos/classe/subsistema/sistema o mais independente possível, ou seja, não possui conhecimento sobre o outro ou confia em outro.
	 Explique se há e como é o problema que o padrão FactoryMethod ainda não consegue resolver. 
	 
	Há o seguinte problema. Mesmo estruturando uma fabrica de criação de objetos concretos, o cliente ainda tem que saber qual a classe concreta deverá ser criada. 
	 
	 O padrão mediador gerencia a comunicação entre objetos evitando que os objetos se comuniquem de forma direta. Diante dessa afirmativa, qual a maior vantagem que esse padrão apresenta? 
	 
	 o fato de que facilita a mudança de comportamento sem a necessidade de alterar as classes envolvidas. 
	 
Seguindo os princípios Especialista da Informação qual o critério deve ser adotado na escolha de uma classe para receber uma nova responsabilidade?
Deve-se buscar a classe que conhece do contexto da nova responsabilidade através de seus atributos
e métodos já definidos.
	Considerando que o padrão tem o objetivo de garantir que existe apenas uma instancia de uma certa classe a qualquer instante e em qualquer ponto de um sistema. Indique o padrão mencionado e cite uma vantagem de sua utilização. 
	 padrão singleton uma vantagem apontada é o desempenho de uma aplicação. 
O que fazer para evitar o acoplamento alto e o reuso baixo entre dois ou mais elementos na hora de atribuir responsabilidades entre eles, segundo o princípio GRASP Indireção? 
Deve-se atribuir responsabilidade a um objeto intermediário para mediar entre diversos componentes ou serviços, de maneira que eles não fiquem diretamente acoplados. 
Baixo acoplamento é um princípio‐chave na Orientação objetos. O que deve ser feito para garantir o baixo acoplamento na definição dos objetos/classe/subsistema/sistema.
Deve‐se manter os objetos/classe/subsistema/sistema o mais independente possível, ou seja, não possui conhecimento sobre o outro ou confia em outro.
Seguindo os princípios Especialista da Informação qual o critério deve ser adotado na escolha de uma classe para receber uma nova responsabilidade?
Deve‐se buscar a classe que conhece do contexto da nova responsabilidade através de seus atributos e métodos já definidos.
Se você chega a conclusão: " O padrão Information Expert não garante acoplamento baixo e alta coesão". Como
resolver o problema?
Aplicando o padrão Pure Fabrication, utilizando uma classe artificial.
Considerando um sistema de vendas onde possuímos o pedido e os itens de pedido. A cada pedido de cliente lhe é atribuído um número de pedido e em seguida solicitado os itens correspondentes a ele. Na finalização do pedido são criadas instâncias do pedido e dos itens.
No diagrama de classe de domínio possuímos 2 classes: uma de pedido e outra de itens de pedido. Você é o
projetista do sistema e deverá decidir a classe que deverá ser responsável por criar as instâncias de itens de pedido baseando-se no padrão CRIADOR. Justifique sua resposta.
A classe pedido deve ser responsável por criar as instâncias de Itens de Pedido, pois itens de pedido
depende de objetos de Pedido.
 Segundo a teoria apresentada no curso, qual a principal vantagem do uso do padrão Controlador para segmentar logicamente o código, segundo a visão lógica de usuários segundo eventos?
 Permite criar um ponto de entrada comum na chamada do evento e entre os benefícios da utilização do padrão controlador, pode-se citar: maior potencial para reuso, construção de interfaces ¿plugáveis¿, maior controle sobre o estado de um caso de uso, e maior organização do código.
Qual a principal utilidade do padrão Intepreter segundo a teoria apresentada no curso?
traduzir, instaciar, e prover a interação entre objetos
Ter uma baixa coesão nos objetos do sistema pode gerar difícil compreensão e reutilização, além de afetar a manutenibilidade. O que é ter baixa coesão ?
	É quando se tem uma mesma classe executando muitos trabalhos, realizando muitas coisas não relacionadas
 Se você tem um algoritmo ¿base¿ que deve ser adaptado para diversos métodos, segundo o conteúdo apresentado no curso, qual o padrão que melhor se enquadra para ser utilizado? Justifique sua resposta. 
	 
	 O padrão de projeto Templat Method sugere a implementação de um algoritmo que faz uso de diferentes métodos, diferenciando das soluções convencionais por deixar o esqueleto deste algoritmo fixo em uma superclasse abstrata. A vantagem desta estrutura é que se consegue alterar o comportamento de um algoritmo, sem modificar sua estrutura lógica. 
	 
	 Uma classe com alto acoplamento faz com que o reuso fique comprometido. Apresente uma justificativa para esse problema. 
	 Uma classe com alto acoplamento dificulta a sua reutilização, tendo em vista a necessidade de relacionar a classe acoplada. 
	 
	 
Qual a principal expectativa de usabilidade do Padrão Estrutural Proxy
Providenciar um substituto ou um ponto central para um controlar o acesso a outro.
No desenvolvimento de sistemas baseado na Orientação a Objetos são utilizados padrões de projetos que buscam utilizar conhecimentos já adquiridos e comprovados. Assim, o padrão de projeto GRASP COESÃO tem como objetivo desenvolver procedimentos com objetivo bem definido. Quais as facilidades são atribuídas ao uso desse padrão?
Facilidade na reutilização, manutenção e conseqüente garantia de continuidade.
Cite duas vantagens de se aplicar o Padrão FactoryMethod
1- Cria uma hierarquia de criação de objetos; 2- A criação dos objetos édesacoplada das classes concretas;
Por que os padrões são uma maneira eficiente de reuso de projeto?
Por que o principal objetivo do padrão é obter um baixo acoplamento e alto nível de coesão, o que torna os módulos com independência e responsabilidade definidas em contextos específicos.
O uso de classes “statics” garante que somente uma instância estará em memória e que a destruição pelo “garbag collection” será mais rápida do que o padrão singleton. Por que então devemos usar o padrão singleton?
Porque uma classe static sempre é carregada na memória quando solicitada a primeira instância.

Outros materiais