Você está na página 1de 30

Padres de Projeto

Modelagem Orientada a Objetos

Prof Rodrigo Rocha Silva


Email: rrochas@gmail.com Site: www.rrochas.com.br Twitter: @drigorochasilva

Ncleo de Cincias Exatas e Tecnologia


Graduao em Sistemas de Informao e Tecnlogo em Anlise e Desenvolvimento de Sistemas

Padres de Projeto

Aplicaes monolticas
Nos tempos antigos do reinado do grande porte e do computador pessoal independente um aplicativo era desenvolvido para ser usado em uma nica mquina. Geralmente este aplicativo continha todas a funcionalidades em um nico mdulo gerado por uma grande quantidade de linhas de cdigo e de manuteno nada fcil. A entrada do usurio , verificao , lgica de negcio e acesso a banco de dados estava presente em um mesmo lugar. Podemos definir este tipo de aplicao como aplicao de uma camada ou monoltica
13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

Padres de Projeto

Aplicaes monolticas

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

Padres de Projeto

Aplicaes monolticas
s d U s e C a s e M ode l

: U su a ri o

F o rm C l i e n t e

sa l v a r(n o m e , e n d e re c o , se x o , d t N a sc i m e n t o ) v a l i d a r() sa l v a r()

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

Padres de Projeto

Modelo 2 Camadas
Camada de Apresentao com Regras de Negcio Juntas. Camada de Persistncia.

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

Padres de Projeto

Modelo 2 Camadas

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

Padres de Projeto

Modelo 3 Camadas
Modelo e cdigos construdos para representar as camadas. Os servidores no precisam estar necessariamente em mquinas diferentes, podem estar na mesma mquina. Porem questes de performance so relevantes. Camada de Apresentao Camada de Negcios Camada de Persistncia

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

Padres de Projeto

Modelo 3 Camadas

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

Padres de Projeto

Modelo 3 Camadas
APRESENTAO NEGCIO OU LGICA PERSISTNCIA (INTEGRAO)

SERVIDOR

NAVEGADOR WEB

SGDB

CLIENTE

CLIENTE - SERVIDOR

SERVIDOR

O modelo de trs camadas divide um aplicativo de modo que a lgica de negcio resida no meio das trs camadas fsicas. Isto chamado de camada fsica intermediria ou camada fsica de negcios. A maior parte do cdigo escrito reside na camada de apresentao e de negcio.
13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

Padres de Projeto

Padres de Projeto de Software Tambm conhecidos como


Padres de Desenho de Software OO ou simplesmente como Padres.

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

10

Padres de Projeto

Padres de Projeto de Software


Os padres de projeto so muito teis para resolver problemas de modelagem de projetos se usados de forma adequada.

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

11

Padres de Projeto

A Inspirao
A idia de padres foi apresentada por Christopher Alexander em 1977 no contexto de Arquitetura (de prdios e cidades): Cada padro descreve um problema que ocorre repetidamente de novo e de novo em nosso ambiente, e ento descreve a parte central da soluo para aquele problema de uma forma que voc pode usar esta soluo um milho de vezes, sem nunca implementa-la duas vezes da mesma forma. Livros The Timeless Way of Building A Pattern Language: Towns, Buildings, and Construction serviram de inspirao para os desenvolvedores de software.
3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva 12

13 de maio de 2011

Padres de Projeto

Catlogo de Solues
Um padro encerra o conhecimento de uma pessoa muito experiente em um determinado assunto de uma forma que este conhecimento pode ser transmitido para outras pessoas menos experientes. Outras cincias (p.ex. qumica) e engenharias possuem catlogos de solues. Desde 1995, o desenvolvimento de software passou a ter o seu primeiro catlogo de solues para projeto de software: o livro GoF.
13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

13

Padres de Projeto

Gang of Four (GoF)

E. Gamma and R. Helm and R. Johnson and J. Vlissides. Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

14

Padres de Projeto

Gang of Four (GoF)


Passamos a ter um vocabulrio comum para conversar sobre projetos de software. Solues que no tinham nome passam a ter nome. Ao invs de discutirmos um sistema em termos de pilhas, filas, rvores e listas ligadas, passamos a falar de coisas de muito mais alto nvel como Fbricas, Fachadas, Observador, Estratgia, etc. A maioria dos autores eram entusiastas de Smalltalk, principalmente o Ralph Johnson. Mas acabaram baseando o livro em C++ para que o impacto junto comunidade de CC fosse maior. E o impacto foi enorme, o livro vendeu centenas de milhares de cpias.
13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

15

Padres de Projeto

O que um padro de projeto?


Um padro de projeto uma estrutura recorrente no projeto de software orientado a objetos. Pelo fato de ser recorrente, vale a pena que seja documentada e estudada.

"Os padres de projeto so descries de objetos que se comunicam e classes que so customizadas para resolver um problema genrico de design em um contexto especfico" Gamma, Helm, Vlissides & Johnson, sobre padres em software

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

16

Padres de Projeto

O que faz um padro de projeto?

Um padro de projeto nomeia, abstrai e identifica os aspectos chave de uma estrutura de projeto comum para torn-la til para a criao de um projeto orientado a objetos reutilizvel.

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

17

Padres de Projeto

Por que aprender padres?

Aprender com a experincia dos outros


Identificar problemas comuns em engenharia de software e utilizar solues testadas e bem documentadas; Utilizar solues que tm um nome: facilita a comunicao, compreenso e documentao.

Aprender a programar bem com orientao a objetos


Os 23 padres de projeto "clssicos" utilizam as melhores prticas em OO para atingir os resultados desejados.

Desenvolver software de melhor qualidade


Os padres utilizam eficientemente polimorfismo, herana, modularidade, composio, abstrao para construir cdigo reutilizvel, eficiente, de alta coeso e baixo acoplamento.

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

18

Padres de Projeto

Por que aprender padres?

Vocabulrio comum
Faz o sistema ficar menos complexo ao permitir que se fale em um nvel mais alto de abstrao.

Ajuda na documentao e na aprendizagem


Conhecendo os padres de projeto torna mais fcil a compreenso de sistemas existentes; "As pessoas que esto aprendendo POO freqentemente reclamam que os sistemas com os quais trabalham usam herana de forma convoluida e que difcil de seguir o fluxo de controle. Geralmente a causa disto que eles no entendem os padres do sistema" [GoF]; Aprender os padres ajudam um novato a agir mais como um especialista.

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

19

Padres de Projeto

Por que aprender padres?

Uma prtica adjunta aos mtodos existentes


Mostram como usar prticas primitivas; Descrevem mais o porqu do design; Ajudam a converter um modelo de anlise em um modelo de implementao;

Um alvo para refatoramento


Captura as principais estruturas que resultam do refatoramento; Uso de patterns desde o incio pode diminuir a necessidade de refatoramento.

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

20

Padres de Projeto

O Formato de um Padro
Todo padro inclui Nome Problema Soluo Conseqncias / Foras

Existem vrios tipos de padres;

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

21

Padres de Projeto

Model-View-Controller
Model View Controller ou Modelo-Viso-Controlador um padro de arquitetura de aplicaes que visa separar a lgica da aplicao, da interface do usurio e do fluxo da aplicao. Permite que a mesma lgica de negcios possa ser acessada e visualizada por vrias interfaces.

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

22

Padres de Projeto

Model-View-Controller
Com as diversas possibilidades de interfaces que conhecemos hoje, a MVC uma ferramenta indispensvel para desenvolvermos sistemas.

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

23

Padres de Projeto

Model-View-Controller
Model Representa o modelo da sua aplicao, com as regras de negcio ( business logic ) e todo o processamento da aplicao; View Representa a informao e recolhe os dados fornecidos pelo usurio; Controller Recebe as informaes da entrada e as transmite para o modelo

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

24

Padres de Projeto

Model-View-Controller

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

25

Padres de Projeto

Model-View-Controller

Visualizao Cliente Html Cliente Jsp

Controle

Modelo

Aes Controlador Negcio

Outros

Persistncia

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

26

Padres de Projeto

Modelo 3 Camadas c/ MVC


APRESENTAO NEGCIO OU LGICA PERSISTNCIA (INTEGRAO)

Helper classes

C M
SGDB

NAVEGADOR WEB

V
CLIENTE - SERVIDOR

CLIENTE

SERVIDOR

SERVIDOR WEB

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

27

Padres de Projeto

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

28

Padres de Projeto

Vantagens do MVC
Como o modelo MVC gerencia mltiplos visualizadores usando o mesmo modelo fcil manter , testar e atualizar sistemas mltiplos muito simples incluir novos clientes apenas incluindo seus visualizadores e controles Torna a aplicao escalvel possvel ter desenvolvimento em paralelo para o modelo , visualizador e controle pois so independentes.
3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva 29

13 de maio de 2011

Padres de Projeto

Desvantagens do MVC
Requer uma quantidade maior de tempo para analisar e modelar o sistema ; Requer pessoal especializado;

13 de maio de 2011

3A TADS e 4A SISINFO - Modelagem Orientada a Objetos - Prof Rodrigo Rocha Silva

30

Você também pode gostar