SlideShare uma empresa Scribd logo
6
Mais lidos
7
Mais lidos
10
Mais lidos
Design Patterns Prof.  Lucas Simões Maistro [email_address] http://www.twitter.com/lucas_simoes http://blogdopiruca.wordpress.com/
Desafios da Área de Software Sistemas estão se tornando maiores e com aplicações mais complexas As empresas esperam Menos bugs Mais rapidez de desenvolvimento Diferentes técnicas podem ajudar a atingir esse objetivo Design Patterns é uma delas
Design Patterns -  Introdução Média de 50 bugs a cada 1000 linhas de código em produção (não é código beta ou em desenvolvimento é PRODUÇÃO) Microsoft conseguiu atingir 0,5 defeitos a cada 1000 linhas XP contém 40-50 milhões de linhas (entre 20 e 25mil bugs, é muita coisa) .Net usa diversos design patterns O time de Patterns & Practices trabalha com integração de design patterns www.microsoft.com/practices
Design Patterns -  Introdução Coleção de soluções Utilizadas anteriormente por especialistas em grande escala para a solução de problemas comuns  Padrões são como uma caixa de ferramentas Estudamos padrões para facilitar o dia-a-dia do desenvolvimento O padrão surge naturalmente
Design Patterns -  Introdução Origem na Engenharia Civil Criação de catálogos para Arquitetura Em 1978, Christopher lança seu livro com o nome "A Pattern Language" onde são feitas definições de padrão de projeto
Design Patterns -  Introdução A partir desta definição, profissionais da área de softwares passaram a utilizar esses princípios para a criação das primeiras documentações de padrões de projetos para ser utilizados como uma espécie de guia para novos desenvolvedores. Em 1995, Eric Gamma, Richard Helm, Ralph Johnson e John Vlissides - (gang of four - GoF), publicam o livro "Design Patterns: Elements of Reusable Object-Oriented Software", onde os autores descrevem 23 padrões baseados em suas experiências e que, ainda hoje é a principal referência no assunto.
Design Patterns -  Introdução Template de um Design Pattern Nome Padrão [Descreve a essência do padrão em um curto e expressivo nome]. Objetivo [Descreve o que o padrão faz]. Também Conhecido Como [Lista de sinônimos para o padrão]. Motivação [Fornece um exemplo de um problema e como o padrão resolve aquele problema]. Aplicabilidade [Lista as situações onde o padrão é aplicado]. Estrutura [Conjunto de diagramas de classes e objetos que descrevem o padrão].
Design Patterns -  Introdução Template de um Design Pattern – Cont. Participantes [Descreve as classes e objetos que participam do design pattern e suas responsabilidades]. Colaborações [Descreve como os participantes colaboram para cumprir com suas responsabilidades]. Conseqüências [Descreve os benefícios e os custos da utilização do padrão]
Design Patterns -  Introdução Os Design Patterns GoF estão divididos em: Padrões de Criação: relacionados ao processo de criação dos objetos Padrões de Estrutura: relacionados com a composição de objetos Padrões de Comportamento: relacionados com a forma como objetos interagem e distribuem o trabalho
Design Patterns -  Introdução Padrões de Criação (Creational Patterns) Abstract Factory  - Um método Factory é um método que fabrica objetos de um tipo particular; Um objeto Factory é um objeto que encapsula métodos Factory. Builder  - Separa a construção de um objeto complexo da sua representação, de forma que o mesmo processo de construção possa criar diferentes representações. Factory Method  - É uma interface para instanciação de objetos que mantém isoladas as classes concretas usadas da requisição da criação destes objetos. Prototype  - O padrão Prototype fornece uma outra maneira de se construir objetos de tipos arbitrários. Singleton  - Garante que para uma classe específica só possa existir uma única instância, a qual é acessível de forma global e uniforme.
Design Patterns -  Introdução Padrões de Estrutura (Structural Patterns) Adapter  - Permite que dois objetos se comuniquem mesmo que tenham interfaces incompatíveis. Bridge  - Desacopla a interface da implementação; Ocultação de detalhes de implementação dos clientes. Composite - lida com uma estrutura de elementos agrupada hierarquicamente (não como meras coleções). Decorator  - Atribui responsabilidades adicionais a um objeto dinamicamente. O Decorator fornece uma alternativa flexível a subclasses para a extensão da funcionalidade. Facade  - Interface unificada para um subsistema ; Torna o subsistema mais fácil de usar. Flyweight  - Usa compartilhamento para dar suporte a vários objetos de forma eficiente. Proxy  - Fornece um objeto representante ou procurador de outro objeto para controlar o acesso ao mesmo.
Design Patterns -  Introdução Padrões de Comportamento ( Behavioural Patterns ) Chain of Responsability  - Evita dependência do remetente(cliente) de uma requisição ao seu destinatário, dando a oportunidade de mais de um objeto tratar a requisição. Command  - Associa uma ação a diferentes objetos através de uma interface conhecida. Interpreter  - Usado para ajudar uma aplicação a entender uma declaração de linguagem natural e executar a funcionalidade da declaração. Iterator  - Provê uma forma de percorrermos os elementos de uma coleção sem violar o seu encapsulamento. Mediator  - Cria um objeto que age como um mediador controlando a interação entre um conjunto de objetos. Memento  - Torna possível salvar o estado de um objeto de modo que o mesmo possa ser restaurado.
Design Patterns -  Introdução Padrões de Comportamento ( Behavioural Patterns ) Cont. Observer  - Define uma relação de dependência 1:N de forma que quando um certo objeto (assunto) tem seu estado modificado os demais (observadores) são notificados; Possibilita baixo acoplamento entre os objetos observadores e o assunto. State  - Permite objeto alterar seu comportamento quando estado interno muda. Strategy  - Permite que uma família de algoritmos seja utilizada de modo independente e seletivo. Template Method  - Define o esqueleto de um algoritmo em uma operação adiando a definição de alguns passos para a subclasse. Visitor  - Define operações independentes a serem realizadas sobre elementos de uma estrutura

Mais conteúdo relacionado

PPTX
05 html tabelas
ODP
Diagrama de Estados
PPT
Gof design patterns
PDF
Introduction to JPA and Hibernate including examples
PDF
Diagrama de Classes
PDF
Testando API REST - Parte 1
PPTX
Uml diagrama de sequencia
PPT
Caso De Uso
05 html tabelas
Diagrama de Estados
Gof design patterns
Introduction to JPA and Hibernate including examples
Diagrama de Classes
Testando API REST - Parte 1
Uml diagrama de sequencia
Caso De Uso

Mais procurados (20)

PDF
Aula 1 - Introdução a POO
PDF
Minicurso de HTML básico - Atualizado para HTML5
PPTX
Selenium-Locators
PDF
Padrões de Projeto de Software
PPTX
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
PDF
Aula 07 - Diagrama de sequencia
PPTX
Front End x Back End
PPT
Teste de Software Introdução à Qualidade
PPT
Java Persistence API (JPA) Step By Step
PDF
Curso de Node JS Básico
PPTX
Diagrama sequencia
PPT
Uml diagrama de atividades
PDF
Aula 06 - Diagrama de classes
PPTX
Design pattern-presentation
PDF
Spring Data JPA
PDF
Hands On with Maven
PPT
Eye catching HTML BASICS tips: Learn easily
PPTX
An Introduction to Maven
PPTX
Reuso de software
PPT
Collaboration Diagram
Aula 1 - Introdução a POO
Minicurso de HTML básico - Atualizado para HTML5
Selenium-Locators
Padrões de Projeto de Software
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Aula 07 - Diagrama de sequencia
Front End x Back End
Teste de Software Introdução à Qualidade
Java Persistence API (JPA) Step By Step
Curso de Node JS Básico
Diagrama sequencia
Uml diagrama de atividades
Aula 06 - Diagrama de classes
Design pattern-presentation
Spring Data JPA
Hands On with Maven
Eye catching HTML BASICS tips: Learn easily
An Introduction to Maven
Reuso de software
Collaboration Diagram
Anúncio

Destaque (12)

PPT
Patterns
PPT
Framework
PPT
Introdução à análise orientada a objetos parte 1
PDF
Componentes Transformers: Combinando o melhor de cada framework
PPT
Introdução à análise orientada a objetos parte 6
PPT
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
PDF
Orientação a Objetos - Da Teoria a Pratica
PDF
Como escolher um framework web
PPTX
PPTX
Sete Passos Para Um Programador De Sucesso
PDF
Como escolher o Framework Java para web?
Patterns
Framework
Introdução à análise orientada a objetos parte 1
Componentes Transformers: Combinando o melhor de cada framework
Introdução à análise orientada a objetos parte 6
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
Orientação a Objetos - Da Teoria a Pratica
Como escolher um framework web
Sete Passos Para Um Programador De Sucesso
Como escolher o Framework Java para web?
Anúncio

Semelhante a Apresentação Introdução Design Patterns (20)

PPT
design patterns - introdução
PPT
Padrões de design orientado a objetos
ODP
Design Patterns
PPTX
5507 os principais design patterns
PDF
Padroes De Projeto
PPT
pec-12-patterns-intro.ppt
PDF
Sld 4
DOC
Travalho versao final
PDF
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
PDF
Poo apostila visual c
PDF
Umlv4 090813182632-phpapp02
PPTX
UMLIntro.pptx
PPT
Modelagem de sistemas
PPTX
Design pattern
PPT
Design Patterns
PPT
Reutilização
PDF
Análise de sistemas oo 1
ODP
Construção de Frameworks com Annotation e Reflection API em Java
PDF
Design Patterns
PPTX
Módulo 9 - Introdução à Programação Orientada a Objectos
design patterns - introdução
Padrões de design orientado a objetos
Design Patterns
5507 os principais design patterns
Padroes De Projeto
pec-12-patterns-intro.ppt
Sld 4
Travalho versao final
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Poo apostila visual c
Umlv4 090813182632-phpapp02
UMLIntro.pptx
Modelagem de sistemas
Design pattern
Design Patterns
Reutilização
Análise de sistemas oo 1
Construção de Frameworks com Annotation e Reflection API em Java
Design Patterns
Módulo 9 - Introdução à Programação Orientada a Objectos

Último (11)

PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPT
Conceitos básicos de Redes Neurais Artificiais
PPTX
Utilizando code blockes por andre backes
PPTX
Eng. Software - pontos essenciais para o início
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Jira Software projetos completos com scrum
Manejo integrado de pragas na cultura do algodão
Tipos de servidor em redes de computador.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Conceitos básicos de Redes Neurais Artificiais
Utilizando code blockes por andre backes
Eng. Software - pontos essenciais para o início
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Viasol Energia Solar -Soluções para geração e economia de energia
Jira Software projetos completos com scrum

Apresentação Introdução Design Patterns

  • 1. Design Patterns Prof. Lucas Simões Maistro [email_address] http://www.twitter.com/lucas_simoes http://blogdopiruca.wordpress.com/
  • 2. Desafios da Área de Software Sistemas estão se tornando maiores e com aplicações mais complexas As empresas esperam Menos bugs Mais rapidez de desenvolvimento Diferentes técnicas podem ajudar a atingir esse objetivo Design Patterns é uma delas
  • 3. Design Patterns - Introdução Média de 50 bugs a cada 1000 linhas de código em produção (não é código beta ou em desenvolvimento é PRODUÇÃO) Microsoft conseguiu atingir 0,5 defeitos a cada 1000 linhas XP contém 40-50 milhões de linhas (entre 20 e 25mil bugs, é muita coisa) .Net usa diversos design patterns O time de Patterns & Practices trabalha com integração de design patterns www.microsoft.com/practices
  • 4. Design Patterns - Introdução Coleção de soluções Utilizadas anteriormente por especialistas em grande escala para a solução de problemas comuns Padrões são como uma caixa de ferramentas Estudamos padrões para facilitar o dia-a-dia do desenvolvimento O padrão surge naturalmente
  • 5. Design Patterns - Introdução Origem na Engenharia Civil Criação de catálogos para Arquitetura Em 1978, Christopher lança seu livro com o nome "A Pattern Language" onde são feitas definições de padrão de projeto
  • 6. Design Patterns - Introdução A partir desta definição, profissionais da área de softwares passaram a utilizar esses princípios para a criação das primeiras documentações de padrões de projetos para ser utilizados como uma espécie de guia para novos desenvolvedores. Em 1995, Eric Gamma, Richard Helm, Ralph Johnson e John Vlissides - (gang of four - GoF), publicam o livro "Design Patterns: Elements of Reusable Object-Oriented Software", onde os autores descrevem 23 padrões baseados em suas experiências e que, ainda hoje é a principal referência no assunto.
  • 7. Design Patterns - Introdução Template de um Design Pattern Nome Padrão [Descreve a essência do padrão em um curto e expressivo nome]. Objetivo [Descreve o que o padrão faz]. Também Conhecido Como [Lista de sinônimos para o padrão]. Motivação [Fornece um exemplo de um problema e como o padrão resolve aquele problema]. Aplicabilidade [Lista as situações onde o padrão é aplicado]. Estrutura [Conjunto de diagramas de classes e objetos que descrevem o padrão].
  • 8. Design Patterns - Introdução Template de um Design Pattern – Cont. Participantes [Descreve as classes e objetos que participam do design pattern e suas responsabilidades]. Colaborações [Descreve como os participantes colaboram para cumprir com suas responsabilidades]. Conseqüências [Descreve os benefícios e os custos da utilização do padrão]
  • 9. Design Patterns - Introdução Os Design Patterns GoF estão divididos em: Padrões de Criação: relacionados ao processo de criação dos objetos Padrões de Estrutura: relacionados com a composição de objetos Padrões de Comportamento: relacionados com a forma como objetos interagem e distribuem o trabalho
  • 10. Design Patterns - Introdução Padrões de Criação (Creational Patterns) Abstract Factory - Um método Factory é um método que fabrica objetos de um tipo particular; Um objeto Factory é um objeto que encapsula métodos Factory. Builder - Separa a construção de um objeto complexo da sua representação, de forma que o mesmo processo de construção possa criar diferentes representações. Factory Method - É uma interface para instanciação de objetos que mantém isoladas as classes concretas usadas da requisição da criação destes objetos. Prototype - O padrão Prototype fornece uma outra maneira de se construir objetos de tipos arbitrários. Singleton - Garante que para uma classe específica só possa existir uma única instância, a qual é acessível de forma global e uniforme.
  • 11. Design Patterns - Introdução Padrões de Estrutura (Structural Patterns) Adapter - Permite que dois objetos se comuniquem mesmo que tenham interfaces incompatíveis. Bridge - Desacopla a interface da implementação; Ocultação de detalhes de implementação dos clientes. Composite - lida com uma estrutura de elementos agrupada hierarquicamente (não como meras coleções). Decorator - Atribui responsabilidades adicionais a um objeto dinamicamente. O Decorator fornece uma alternativa flexível a subclasses para a extensão da funcionalidade. Facade - Interface unificada para um subsistema ; Torna o subsistema mais fácil de usar. Flyweight - Usa compartilhamento para dar suporte a vários objetos de forma eficiente. Proxy - Fornece um objeto representante ou procurador de outro objeto para controlar o acesso ao mesmo.
  • 12. Design Patterns - Introdução Padrões de Comportamento ( Behavioural Patterns ) Chain of Responsability - Evita dependência do remetente(cliente) de uma requisição ao seu destinatário, dando a oportunidade de mais de um objeto tratar a requisição. Command - Associa uma ação a diferentes objetos através de uma interface conhecida. Interpreter - Usado para ajudar uma aplicação a entender uma declaração de linguagem natural e executar a funcionalidade da declaração. Iterator - Provê uma forma de percorrermos os elementos de uma coleção sem violar o seu encapsulamento. Mediator - Cria um objeto que age como um mediador controlando a interação entre um conjunto de objetos. Memento - Torna possível salvar o estado de um objeto de modo que o mesmo possa ser restaurado.
  • 13. Design Patterns - Introdução Padrões de Comportamento ( Behavioural Patterns ) Cont. Observer - Define uma relação de dependência 1:N de forma que quando um certo objeto (assunto) tem seu estado modificado os demais (observadores) são notificados; Possibilita baixo acoplamento entre os objetos observadores e o assunto. State - Permite objeto alterar seu comportamento quando estado interno muda. Strategy - Permite que uma família de algoritmos seja utilizada de modo independente e seletivo. Template Method - Define o esqueleto de um algoritmo em uma operação adiando a definição de alguns passos para a subclasse. Visitor - Define operações independentes a serem realizadas sobre elementos de uma estrutura