Buscar

Aula 16 - Introdução a Padrões

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 24 páginas

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 6, do total de 24 páginas

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 9, do total de 24 páginas

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

Prévia do material em texto

Introdução a Padrões 
Professor: Baldoino Santos Neto 
 
Agradecimento dos Slides: Hyggo Almeida 
Instituto de Computação – UFAL 
O que vimos na última aula? 
n  Introdução a padrões 
¨  O que são? 
¨  Por que utilizá-los? 
n  Padrões GRASP 
¨  O que são? 
¨  Quais serão apresentados na disciplina? 
GRASP 2 
Instituto de Computação – UFAL 
Motivação para o uso de padrões de 
software 
n  Problemas no desenvolvimento de software se repetem 
n  Bons desenvolvedores... aplicam boas soluções... 
n  Por que não reutilizar as boas soluções em outros 
projetos??? 
n  ...surgem os padrões de software!!! 
n  Tópicos avançados??? 
¨  Devem “estar na cabeça” de vocês desde o princípio!!! 
GRASP 3 
Instituto de Computação – UFAL 
O que são padrões de software? 
n  Um padrão de software é… 
¨  a descrição de um problema que ocorre com 
frequência 
¨  a base de uma solução para este problema 
n  Reutilização em inúmeros projetos 
n  Solução elegante e adaptável 
n  Reutilização de ideias... não de código! 
n  Somatório das experiências dos maiores 
projetistas de orientação a objetos 
n  “Gangue dos quatro”... 
¨  Catálogo de padrões de 1995 
GRASP 4 
Instituto de Computação – UFAL 
Classificação de Padrões de Software 
n  Padrões de análise 
n  Padrões de testes 
n  Padrões de negócio 
n  Padrões pedagógicos 
n  Padrões arquiteturais 
n  Padrões de Projeto (Design Patterns) 
¨  Iniciaram a febre de padrões 
¨  Serão apresentados neste curso!!! 
GRASP 5 
Instituto de Computação – UFAL 
Classificação de Padrões de Software 
n  Padrões de análise 
n  Padrões de testes 
n  Padrões de negócio 
n  Padrões pedagógicos 
n  Padrões arquiteturais 
n  Padrões de Projeto (Design Patterns) 
¨  Iniciaram a febre de padrões 
¨  Serão apresentados neste curso!!! 
GRASP 6 
Instituto de Computação – UFAL 
Elementos Essenciais de um Padrão de 
Software 
n  Nome 
n  Problema 
n  Solução 
n  Consequências 
GRASP 7 
Instituto de Computação – UFAL 
Elementos Essenciais de um Padrão de 
Software 
n  Nome 
¨  Deve ser sugestivo/representativo do problema ou 
solução 
n  Apenas pelo nome, sabe-se a “natureza” do padrão... 
GRASP 8 
Que padrão deve ser utilizado para que se tenha 
apenas uma instância de uma classe? 
Singleton 
Instituto de Computação – UFAL 
Elementos Essenciais de um Padrão de 
Software 
n  Nome 
¨  Permite documentar código 
n  Evita longas descrições... 
 
GRASP 9 
/** Nesta classe implementa-se o 
•  padrão Singleton… 
•  @author Baldoino 
•  @version 1.0 
*/ 
public class Calendar{ 
 
 … 
 
 
 
 
/** Nesta classe utiliza-se um construtor 
* privado, com um método estático que 
* retorna uma a única instância desta 
* classe, 
* sincronizado para evitar que outra 
* instância seja recuperada por outra 
* linha de execução... 
* @author Baldoino 
* @version 1.0 
*/ 
public class Calendar{ 
… 
 
 
 
 
Instituto de Computação – UFAL 
Elementos Essenciais de um Padrão de 
Software 
n  Nome 
¨  “Todo mundo conhece os padrões” 
n  Nomes padronizados em inglês 
n  Independente da equipe, estabelece-se comunicação de alto 
nível 
 
GRASP 10 
Instituto de Computação – UFAL 
Elementos Essenciais de um Padrão de 
Software 
n  Problema 
¨  Quando aplicar o padrão? 
n  Em que situações o padrão pode ser aplicado? 
n  Em que situações o padrão traz flexibilidade/elegância ao 
projeto? 
n  Quando não utilizá-lo? 
 
GRASP 11 
Instituto de Computação – UFAL 
Elementos Essenciais de um Padrão de 
Software 
n  Problema 
¨  Descreve o problema e o contexto 
n  Eis o problema que motiva a utilização do padrão!!! 
n  O seu problema é similar ao descrito no padrão??? 
¨  Se sim, basta uma adaptação da solução!!! 
 
GRASP 12 
Instituto de Computação – UFAL 
Elementos Essenciais de um Padrão de 
Software 
n  Problema 
¨  Descreve condições que podem requerer o uso do 
padrão 
n  Em que condições o padrão deve ser utilizado? 
¨  Como evitar este macarrão? Padrão X!!! 
¨  Como flexibilizar a hierarquia de classes? Padrão Y!!! 
 
 
GRASP 13 
Instituto de Computação – UFAL 
Elementos Essenciais de um Padrão de 
Software 
n  Problema 
¨  Exemplos específicos de aplicação 
n  Como definir uma instância única de uma classe??? 
n  Como representar algoritmos como objetos??? 
 
 
GRASP 14 
Instituto de Computação – UFAL 
Elementos Essenciais de um Padrão de 
Software 
n  Solução 
¨  Descreve os elementos que compõem o projeto da 
solução, suas responsabilidades e colaborações 
n  Modelo conceitual 
n  Diagrama de Classes 
 
GRASP 15 
Instituto de Computação – UFAL 
Elementos Essenciais de um Padrão de 
Software 
n  Solução 
¨  Não descreve uma implementação concreta, apenas 
um modelo genérico para que possa ser reutilizado 
n  Dependendo do seu problema, deverá ser adaptado 
n  Tem-se um exemplo de solução, mas apenas para guiar o 
reúso 
 
 
GRASP 16 
Instituto de Computação – UFAL 
Elementos Essenciais de um Padrão de 
Software 
n  Consequências 
¨  Resultados da utilização do padrão 
n  “O que se ganha com isso?” 
n  “Ruim com ele? Pior sem ele!!!” 
 
 
GRASP 17 
Instituto de Computação – UFAL 
Elementos Essenciais de um Padrão de 
Software 
n  Consequências 
¨  Vantagens e desvantagens 
n  Visão crítica: “o que se perde?” 
n  Análise de impactos sobre: 
¨  Flexibilidade 
¨  Extensibilidade 
¨  Reúso 
¨  Desempenho 
¨  ... 
 
GRASP 18 
Instituto de Computação – UFAL 
Entendido??? 
n  Padrões 
¨  O que são? 
¨  Para que servem? 
¨  Como são apresentados? 
GRASP 19 
Instituto de Computação – UFAL 
GRASP 
GRASP 20 
 
General 
Responsibility 
Assignment 
Software 
Patterns 
 
Instituto de Computação – UFAL 
Atribuição de responsabilidades??? 
n  Sistema OO é composto de objetos 
relacionados 
¨  Troca de mensagens 
¨  Mensagens representadas por métodos 
¨  Métodos representam acoplamento 
¨  De quem é a responsabilidade de implementar um 
determinado método? 
¨  Responsabilidades bem distribuídas = menor 
acoplamento 
¨  Menor acoplamento = Maior flexibilidade!!! 
GRASP 21 
Instituto de Computação – UFAL 
Atribuição de responsabilidades??? 
n  GRASP 
¨  General Responsibilities Assignment Software Patterns 
¨  Padrões definidos por Craig Larman 
¨  Atribuição de responsabilidades de 
n  fazer algo 
¨  A si mesmo 
¨  a outros objetos 
n  Conhecer algo 
¨  dados encapsulados 
¨  objetos relacionados 
n  Responsabilidade é diferente de método 
¨  Métodos são usados para implementar responsabilidades 
GRASP 22 
Instituto de Computação – UFAL 
Quais padrões GRASP serão estudados??? 
n  Padrões para atribuição de responsabilidades 
¨  Expert 
n  Quem é o especialista da informação? 
¨  Creator 
n  Quem deve criar uma determinada instância? 
¨  Baixo acoplamento (Low Coupling) 
n  Como diminuir o acoplamento entre as classes? 
¨  Alta coesão (High Cohesion) 
n  Como aumentar a coesão no sistema? 
GRASP 23 
Instituto de Computação – UFAL 
Dúvidas? 
? 
GRASP 24

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes