Sunteți pe pagina 1din 41

Introduo a Design Patterns

Globalcode open4education

Agenda
Introduo Patterns e certificaes Sun GoF patterns: criao GoF patterns: comportamento GoF patterns: estrutura J2EE patterns Concluses

Globalcode open4education

Agenda
Introduo Patterns e certificaes Sun GoF patterns: criao GoF patterns: comportamento GoF patterns: estrutura J2EE patterns Concluses

Globalcode open4education

Introduo
Um design-pattern ... Uma forma padro de organizar classes e objetos; Nomes para solues que voc j modelou; Uma forma de compartilhar conhecimentos sobre POO; Solues POO para problemas que incidem em diversos cenrios de desenvolvimento; Uma definio de conjunto finito de responsabilidades para uma classe;

Globalcode open4education

Introduo
Ao adotar design-patterns... Seu cdigo fica mais organizado; Aumento de qualidade; Menor complexidade; Aumenta comunicao dentro da equipe de desenvolvimento;

Globalcode open4education

Introduo
A definio de um pattern pode conter... Um nome: Transfer Object Um outro nome (also know as): Value Object Um problema: algumas entidades contm dados que so sempre lidos em grupo... Uma soluo: serializar todos os dados da entidade em um objeto que...

Globalcode open4education

Introduo
Famlias de patterns GoF: 23 patterns Criao: Abstract Factory, Builder, Factory Method, Prototype, Singleton Estrutura: Adapter, Bridge, Composite, Decorator, Faade, Flyweight, Proxy Comportamento: Chain of Resp., Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor

Globalcode open4education

Introduo
Famlias de patterns J2EE: Business Delegate, Composite Entity, Composite View, Data Access Object, Fast Lane Reader, Front Controller, Intercepting Filter, Modelview-controller, Service Locator, Session Faade, Transfer Object, Value List Handler, View Helper

Globalcode open4education

Agenda
Introduo Patterns e certificaes Sun GoF patterns: criao GoF patterns: comportamento GoF patterns: estrutura J2EE patterns Concluses

Globalcode open4education

Patterns e Certificao
As seguintes certificaes Sun exigem conhecimentos de patterns: Sun Certified Web Components Developer; Sun Certified Business Component Developer; Sun Certified Enterprise Architect; O que e quanto estudar? Todos patterns J2EE; Aplicar na prtica os principais GoF e os mais obscuros conhecer a teoria bsica;

10

Globalcode open4education

Patterns e Certificao
Qual das opes no um benefcio da utilizao dos design-patterns: a) Eles fornecem uma linguagem comum para discusses sobre o design. b) Eles fornecem solues para os problemas do mundo real. c) Ele comunicam a experincia obtida previamente. d) Eles fornecem solues aos problemas totalmente inusitados.

11

Globalcode open4education

Patterns e Certificao
Qual das opes no um benefcio da utilizao dos design-patterns: a) Eles fornecem uma linguagem comum para discusses sobre o design. b) Eles fornecem solues para os problemas do mundo real. c) Ele comunicam a experincia obtida previamente. d) Eles fornecem solues aos problemas totalmente inusitados.

12

Globalcode open4education

Patterns e Certificao
O design pattern Decorator aparece frequentemente em qual pacote Java: a) java.io b) java.awt c) java.lang d) java.util

13

Globalcode open4education

Patterns e Certificao
O design pattern Decorator aparece frequentemente em qual pacote Java: a) java.io b) java.awt c) java.lang d) java.util

14

Globalcode open4education

Agenda
Introduo Patterns e certificaes Sun GoF patterns: criao GoF patterns: comportamento GoF patterns: estrutura J2EE patterns Concluses

15

Globalcode open4education

Singleton
Definio: garantir que uma classe tenha somente uma instncia. Warning: Devemos tomar cuidado com servidores em cluster
public class FormatHelper { private static FormatHelper instance = new FormatHelper(); ... public static FormatHelper getInstance() { return instance; } protected FormatHelper() { } public String fullDateFormat(java.util.Date data) { if(data==null || data.equals("")) return ""; else return dataCompleta.format(data); } }

16

Globalcode open4education

Abstract Factory
Definio: prover uma interface para criao de classes de uma famlia sem especificar a classe concreta. O melhor exemplo de implementao a Home Interface do EJB
package br.com.globalcode.aa.ejb.session.dao; import javax.ejb.*; import java.rmi.*; public interface CursosDAOHome extends javax.ejb.EJBHome { public CursosDAO create() throws CreateException, RemoteException; }

O cliente fica dependente apenas da interface de criao e no tem contato com o Concrete Factory, quem o cria o J2EE container em deployment time.
17 Globalcode open4education

Agenda
Introduo Patterns e certificaes Sun GoF patterns: criao GoF patterns: comportamento GoF patterns: estrutura J2EE patterns Concluses

18

Globalcode open4education

Command/Action
Definio: encapsula uma requisio ao software em um objeto. Action do Struts o principal exemplo de implementao deste pattern.

19

Globalcode open4education

Chain of Responsability
Definio: prev uma maneira de criar um conjunto de classes que sero acionadas quando um request for enviado para um objeto. J2EE Servlet Filter implementa este pattern. Com Filters podemos associar um conjunto de mtodos doFilter() que sero acionados quando um request for enviado para o servidor Web.

20

Globalcode open4education

Agenda
Introduo Patterns e certificaes Sun GoF patterns: criao GoF patterns: comportamento GoF patterns: estrutura J2EE patterns Concluses

21

Globalcode open4education

Composite
Definio: define um estrutura de objetos em formato de rvore de dados
class Componente { } class Composite extends Componente { List<Componente> componentes = new ArrayList<Componente>(); public void addComponente(Componente comp) { componentes.add(comp); } } class Computador extends Composite { } class PlacaMae extends Composite { } class HardDisk extends Componente { }

22

Globalcode open4education

Composite
public class TesteComputador { public static void main(String[] args) { Computador c = new Computador(); c.addComponente(new PlacaMae()); c.addComponente(new HardDisk()); c.addComponente(new HardDisk()); } }

23

Globalcode open4education

Proxy
Definio: prover um objeto intermedirio para acessar outro objeto. O maior exemplo de Proxy em Java so Stubs e Skeletons RMI.

24

Globalcode open4education

Agenda
Introduo Patterns e certificaes Sun GoF patterns: criao GoF patterns: comportamento GoF patterns: estrutura J2EE patterns Concluses

25

Globalcode open4education

Service Locator
Definio: simplifica o acesso a recursos J2EE em um aplicativo centralizando lookups JNDI em classes especficas de localizao de servios. Evita que sua soluo tenha alto acoplamento com JNDI Naming Service; Tomar cuidado com Service Locator e cluster; Utilize sempre que possvel ENC;

26

Globalcode open4education

Data Acess Object


Definio: centraliza o servio de persistncia de objetos em um pequeno conjunto de classes, evitando por exemplo que cdigo SQL se espalhe pelo cdigo da soluo. Mesmo utilizando framework de persistncia, utilize Data Access Object

27

Globalcode open4education

Front Controller
Definio: centraliza requests em um ponto central na soluo. No lugar de um JSP submit para outro JSP, todos os JSPs submits para um Servlet Front Controller que ser responsvel por processar as requisies.

28

Globalcode open4education

Composite View
Definio: separa uma visualizao (JSP / Swing) em pequenas partes para poder reaproveitar elementos comuns a vrias views. Include de JSP; Componentizao de pedaos de telas Swing; Framework Tiles;

29

Globalcode open4education

Model-view-controller
Definio: divide o aplicativo em dados, comportamento e apresentao. Aplicando MVC podemos reaproveitar o mesmo dado para mltiplas visualizaes; Podemos reaproveitar o comportamento (eventos) da soluo; um pattern de arquitetura, criado h muito tempo. Pode ser aplicado em qualquer linguagem, mais facilmente com OOP.

30

Globalcode open4education

Model-view-controller
115.000 resultados na busca sobre framework MVC no google Struts, WebWorks, Spring, PicoContainer so exemplos de frameworks J2EE Voc ainda no fez um framework MVC?

31

Globalcode open4education

View Helper
Definio: simplifica a renderizao de objetos em views com formatao. Uma Custom Tag pode representar um View Helper; Uma simples classe convencional com mtodos estticos tambm;

32

Globalcode open4education

Intercepting Filter
Definio: forma para executar pr e ps processamento em requests da soluo Um Servlet Filter um exemplo de implementao de Intercepting Filter para interceptar requests no Web Container; Foram acrescentados Interceptors para EJB a partir da verso EJB 3.0

33

Globalcode open4education

Intercepting Filter

34

Globalcode open4education

Session Faade
Definio: muitos processos em servidores envolvem a manipulao de diversas business classes. O Session Faade cria uma fachada simplificada para representar um processo de negcio complexo.

35

Globalcode open4education

Business Delegate
Definio: em aplicaes distribudas, o acesso remoto / local a EJBs via JNDI Naming Service e tratamento de erros pode se tornar complexo medida que o projeto cresce. Soluo: criar uma classe intermediria para acessar os EJBs que contempla as regras de nomes de componentes para lookups, propriedades do servidor J2EE, tratamento de exceptions, etc.;

36

Globalcode open4education

Business Delegate

37

Globalcode open4education

Outros
Value List Handler: prov uma forma eficiente para percorrer e interagir com grande quantidade de dados entre camadas; Composite Entity: uma forma de relacionar entitidades que so compostas por outras entidades. Implementado no CMP 2.0

38

Globalcode open4education

Catlogo de patterns

39

Globalcode open4education

Agenda
Introduo Patterns e certificaes Sun GoF patterns: criao GoF patterns: comportamento GoF patterns: estrutura J2EE patterns Concluses

40

Globalcode open4education

Concluses
Os patterns J2EE so poucos e fceis de entender; Utilizando patterns voc cria solues padronizadas, facilitando a troca de programadores; O site www.theserverside.com contm vrios patterns fora do catlogo J2EE e GoF;

41

Globalcode open4education

S-ar putea să vă placă și