Your SlideShare is downloading. ×
0
Apresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Apresentação Introdução Design Patterns

1,135

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,135
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
39
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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

×