• Nenhum resultado encontrado

Padroes de Projeto

N/A
N/A
Protected

Academic year: 2021

Share "Padroes de Projeto"

Copied!
49
0
0

Texto

(1)

CEA032 – PROGRAMAÇÃO DE

COMPUTADORES II

Prof. Filipe Nunes Ribeiro

(2)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

PADRÕES DE PROJETO

Agenda

Introdução

Reuso

(3)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

INTRODUÇÃO

Projetar software orientado a objetos é...

Difícil!

Como estabelecer as classes adequadas?

Definição adequada de interfaces

Hierarquia de herança adequada.

(4)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

INTRODUÇÃO

Deve ser genérico?

Desenho deve ser genérico o suficiente para reuso

E adaptabilidade visando mudança de requisitos

(5)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

REUSO

Arquitetos experientes dizem que...

Projeto reusável, flexível é difícil de se obter

Modificações constantes visando melhorias → refactoring.

É fato que...

Arquitetos experientes realizam projetos de qualidade.

Enquanto inexperientes não...

Ficam sobrecarregados sobre a quantidade de opções...

E tendem a utilizar técnicas não O.O.

Ou que não tiram proveito da O.O.

A curva de aprendizado é longa...

(6)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

REUSO

Mas se arquitetos experientes...

Fazem um bom projetos, então eles sabem algo a mais

Será que tem como tirarmos vantagem da experiência deles?

Não reinventar a roda

Reuso de soluções que deram certo!

(7)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

REUSO

Tais soluções começam a ser utilizadas repetidamente até...

Se tornarem padrões que são aplicáveis a problemas

específicos

Padrões representarão a forma de classes e comunicação entre

elas.

Utilização destes padrões tornam o software produzido

Compreensível

Flexível

(8)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

PADRÕES DE PROJETO

Ideia que foi ”emprestada” da arquitetura

Christopher Alexander

Alexander descreve problemas como o surgimento de "forças

conflitantes" que se manifestam em situações particulares

Ex:

Problema: quarto precisa ser ensolarado mas não superaquecido no verão

Solução: e a justificativa para tal solução.

Um padrão deve ser geral o suficiente para poder ser aplicado a uma

gama de situações em um particular contexto e específico suficiente

para orientar o projetista nas suas decisões.

(9)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

PADRÕES DE PROJETO

Mas o que é um padrão de projeto

Composto por 4 elementos essenciais

Nome

Identifica e fornece um vocabulário para discussão sobre o

projeto.

Permite projetar o software em um nível mais alto de abstração

.

Problema

Quando devemos usar um determinado padrão?

Especifica uma estrutura de classes inflexível

(10)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

PADRÕES DE PROJETO

Mas o que é um padrão de projeto

Composto por 4 elementos essenciais

Solução

Descreve os elementos que compõe o padrão.

Relacionamentos, responsabilidades e colaborações.

Padrões não descrevem soluções absolutas

Padrões são abstratos, estrutura mínima de projeto O.O

.

Consequências

(11)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

PADRÕES DE PROJETO

Mas como usar um padrão de projeto?

Leia o texto descritivo do padrão por completo

Examine as seções de estrutura e interação.

Observe o código de exemplo com cuidado.

Entenda como os padrões se relacionam

Alguns padrões podem ser combinados de maneira simples

Estude padrões de finalidade semelhante

Estes possuem mais chance de compor uma solução maior

Escolha nomes apropriados

(12)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

PADRÕES DE PROJETO

“Cada padrão descreve um problema que ocorre repetidamente,

e então descreve o núcleo da solução para aquele problema, de

forma que pode-se utilizar a mesma solução com menor

esforço.”

(13)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

PADRÕES DE PROJETO

"Padrões para arquitetura de software são soluções de

eficiência já comprovadas e amplamente utilizadas para a

resolução de problemas comuns em projeto de software. Estas

soluções são desenvolvidas e conhecidas por especialistas e

tornam-se padrões por serem reutilizadas várias vezes em vários

projetos e por terem eficácia comprovada."

(14)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

EXEMPLO DE MODELAGEM OO

Veremos um problema que acontece durante a modelagem O.O

(15)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

COMPORTAMENTO

Antônio trabalha em uma empresa que desenvolve o aplicativo

(PatoQuack)

Jogo de simulação com patos

(16)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(17)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

COMPORTAMENTO

Como bons desenvolvedores O.O

(18)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

COMPORTAMENTO

(19)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

COMPORTAMENTO

Os executivos pediram para a aplicação ser melhorada

O pato precisa voar agora.

(20)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(21)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

COMPOSTAMENTO

Reunião da diretoria da empresa com parceiros para

(22)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(23)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

COMPORTAMENTO

Isso irá acontecer para vários patos

Métodos herdados sem implementação

(24)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

COMPORTAMENTO

Isso irá acontecer para vários patos

Métodos herdados sem implementação

Isso pode ocorrer para muitos casos

(25)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

COMPORTAMENTO

(26)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

COMPORTAMENTO

Existem patos que voam da mesma forma e grasnam da mesma

forma

Caso uma mudança fosse feita no método voar, todas as

subclasses que voam da mesma forma deveriam ser alteradas

(27)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

COMPORTAMENTO

Princípio de projeto:

“Identifique os aspectos de sua aplicação que variam e separá-las

das não variam.“

(28)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(29)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

COMPORTAMENTO

(30)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(31)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(32)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(33)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(34)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

PADRÕES DE PROJETO

Singleton

(35)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

SINGLETON

Este padrão visa assegurar que uma classe tem apenas uma

instância, e deve ser oferecido um ponto de acesso global para

ela.

Ex:

Acesso a banco de dados

Variáveis globais que precisam ser compartilhadas e terem uma

única instância

(36)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(37)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(38)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(39)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(40)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(41)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

ABSTRACT FACTORY

Este padrão permite a criação de famílias de objetos

relacionados ou dependentes, através de uma única interface sem

que a classe concreta seja especificada.

(42)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

ABSTRACT FACTORY

Este padrão fornece uma interface para criar uma família de

produtos.

Ao escrever o código que usa essa interface, desvinculamos

nosso código da fábrica real que cria os produtos

Isso nos permite implementar uma variedade de fábricas que

(43)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

ABSTRACT FACTORY

Ex:

Banco de dados (DAO)

(44)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(45)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(46)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

(47)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

ABSTRACTFACTORY E SINGLETON

(48)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

Exercício

Adapte o projeto GuiCadastraAlunos disponibilizado no site de

forma que ele se encaixe no padrão de projeto Singleton

(49)

Universidade Federal de Ouro Preto Campus João Monlevade

Instituto de Ciências Exatas e Aplicadas

Freeman, E.; Freeman, E. Use a cabeça! Padrões de Projeto.

Segunda Edição. São Paulo: AltaBooks, 2005

Notas de aula do professor Rodrigo Geraldo Ribeiro

(DECSI/UFOP)

Notas de aula do professor Fernando Bernardes (DECSI/UFOP)

Referências

Documentos relacionados

Este trabalho apresenta as atividades realizadas na biblioteca do Colégio La Salle Núcleo Bandeirante: Semana da biblioteca, Semana da Arte, Hora do conto e a Kombi de livros que

Durante os treinos dos atletas do basquete em cadeira de rodas, eles recebem assistência pelos acadêmicos do projeto para facilitar transferências da sua cadeira de rodas para

Para promover a leitura, o acervo da biblioteca escolar pode ser, segundo UNESCO (1999), que expõe o seu manifesto sobre bibliotecas escolares, constituído por um acervo

Proporcionar momentos de prazer e alegria aos alunos e à toda comunidade do CSFX, com esse objetivo apresentamos o projeto Sarau Literário que busca resgatar e

Liver resection, as well as biliary drainage, is commonly employed and represents the ideal procedure in the treatment of intrahepatic lithiasis because it can remove the

Uma vez que a professora Lurdes para além de responsável pelo núcleo de Patinagem é também a coordenadora de todos núcleos de DE, esta pediu-me para lecionar sozinho os

Isso pode ser feito clicando o botão esquerdo do mouse e desenhando um retângulo ao redor dos arquivos a serem renomeados ou manter pressionado o Ctrl e clicar em cada um des-

Partindo desses fatos, o objetivo deste trabalho foi avaliar o efeito do magnésio, boro e manganês na absorção de zinco por raízes destacadas em duas cultivares de arroz (IAC 165 e