SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Design Patterns
Observer e Prototype
Daniel Christofolli
O que são?
Design Patterns são padrões usados no desenvolvimento de
sistemas. Esses padrões surgiram da necessidade de se
resolver problemas frequentes nos códigos. Percebeu-se que
algumas dessas soluções poderiam ser testadas em
problemas semelhantes a fim de serem padronizadas e
documentadas para reutilização em problemas futuros.
Christopher Alexander
O conceito Design Patterns surgiu na década de 1970,
quando o arquiteto Christopher Alexander publicou os seus
livros “Notes on the Synthesis of Form, The Timeless Way of
Building e A Pattern Language”.
Gang of four
Design Patterns: Elements of Reusable Object-Oriented Software (1994) é um livro
de engenharia de software descrevendo padrões de projeto de software. O livro foi
escrito por Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides,
conhecidos como Gang of Four
Observer [Behavioral]
● Dependência 1 => n
● Quando um objeto muda o estado, todos seus
dependentes são notificados e atualizados
automaticamente.
● Também conhecido como Publisher-Subscriber, Event
Generator e Dependents.
Motivação
Um objeto precisa permitir que seus elementos sejam
acessados sem que a sua estrutura interna seja exposta.
● Os observadores (observers) devem conhecer o objeto de
interesse.
● O objeto de interesse (observable) deve notificar os
observadores quando for atualizado.
Prototype [Creational]
● Criação de objetos duplicados, focado no desempenho.
● É uma das melhores maneiras de criar um objeto.
● Mais eficiente que o new
Funcionamento
● Uma instância do objeto fica armazenada em cache;
● Quando necessário, o objeto é copiado (deep copy);
Design patterns - Gang of Four - Observer e Prototype

Mais conteúdo relacionado

Semelhante a Design patterns - Gang of Four - Observer e Prototype

Pensamento projetual no desenvolvimento de software
Pensamento projetual no desenvolvimento de softwarePensamento projetual no desenvolvimento de software
Pensamento projetual no desenvolvimento de softwareUTFPR
 
Principles and dimension of a design system
Principles and dimension of a design systemPrinciples and dimension of a design system
Principles and dimension of a design systemmarieli cristine lemes
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introduçãoelliando dias
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geralsergiocrespo
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de ProjetoNauber Gois
 
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...André Constantino da Silva
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Padrões de Projeto - Design Patterns e Anti-Patterns
Padrões de Projeto - Design Patterns e Anti-PatternsPadrões de Projeto - Design Patterns e Anti-Patterns
Padrões de Projeto - Design Patterns e Anti-PatternsRodrigo Kono
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelRyan Padilha
 
5507 os principais design patterns
5507   os principais design patterns5507   os principais design patterns
5507 os principais design patternsAndre Baltieri
 
Aula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaAula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaGabriel Moura
 

Semelhante a Design patterns - Gang of Four - Observer e Prototype (14)

Apostila uml
Apostila umlApostila uml
Apostila uml
 
Pensamento projetual no desenvolvimento de software
Pensamento projetual no desenvolvimento de softwarePensamento projetual no desenvolvimento de software
Pensamento projetual no desenvolvimento de software
 
Principles and dimension of a design system
Principles and dimension of a design systemPrinciples and dimension of a design system
Principles and dimension of a design system
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
 
P2_Aula1-convertido.pptx
P2_Aula1-convertido.pptxP2_Aula1-convertido.pptx
P2_Aula1-convertido.pptx
 
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Padrões de Projeto - Design Patterns e Anti-Patterns
Padrões de Projeto - Design Patterns e Anti-PatternsPadrões de Projeto - Design Patterns e Anti-Patterns
Padrões de Projeto - Design Patterns e Anti-Patterns
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
 
5507 os principais design patterns
5507   os principais design patterns5507   os principais design patterns
5507 os principais design patterns
 
Aula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaAula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semana
 

Mais de DanielChristofolli

Soa x microservices e versionamento de contrato de API
Soa x microservices e versionamento de contrato de APISoa x microservices e versionamento de contrato de API
Soa x microservices e versionamento de contrato de APIDanielChristofolli
 
Api best practices - SOAP vs REST
Api best practices - SOAP vs RESTApi best practices - SOAP vs REST
Api best practices - SOAP vs RESTDanielChristofolli
 
Princípios de Programação Orientada a Objetos Solid, dry e kiss
Princípios de Programação Orientada a Objetos Solid, dry  e kiss Princípios de Programação Orientada a Objetos Solid, dry  e kiss
Princípios de Programação Orientada a Objetos Solid, dry e kiss DanielChristofolli
 

Mais de DanielChristofolli (6)

Docker
DockerDocker
Docker
 
Gradle spring-hateoas-Lombok
Gradle spring-hateoas-LombokGradle spring-hateoas-Lombok
Gradle spring-hateoas-Lombok
 
Soa x microservices e versionamento de contrato de API
Soa x microservices e versionamento de contrato de APISoa x microservices e versionamento de contrato de API
Soa x microservices e versionamento de contrato de API
 
Api best practices - SOAP vs REST
Api best practices - SOAP vs RESTApi best practices - SOAP vs REST
Api best practices - SOAP vs REST
 
Princípios de Programação Orientada a Objetos Solid, dry e kiss
Princípios de Programação Orientada a Objetos Solid, dry  e kiss Princípios de Programação Orientada a Objetos Solid, dry  e kiss
Princípios de Programação Orientada a Objetos Solid, dry e kiss
 
Novidades java 8, 9, 10 e11
Novidades java 8, 9, 10 e11Novidades java 8, 9, 10 e11
Novidades java 8, 9, 10 e11
 

Design patterns - Gang of Four - Observer e Prototype

  • 1. Design Patterns Observer e Prototype Daniel Christofolli
  • 2. O que são? Design Patterns são padrões usados no desenvolvimento de sistemas. Esses padrões surgiram da necessidade de se resolver problemas frequentes nos códigos. Percebeu-se que algumas dessas soluções poderiam ser testadas em problemas semelhantes a fim de serem padronizadas e documentadas para reutilização em problemas futuros.
  • 3. Christopher Alexander O conceito Design Patterns surgiu na década de 1970, quando o arquiteto Christopher Alexander publicou os seus livros “Notes on the Synthesis of Form, The Timeless Way of Building e A Pattern Language”.
  • 4. Gang of four Design Patterns: Elements of Reusable Object-Oriented Software (1994) é um livro de engenharia de software descrevendo padrões de projeto de software. O livro foi escrito por Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, conhecidos como Gang of Four
  • 5. Observer [Behavioral] ● Dependência 1 => n ● Quando um objeto muda o estado, todos seus dependentes são notificados e atualizados automaticamente. ● Também conhecido como Publisher-Subscriber, Event Generator e Dependents.
  • 6. Motivação Um objeto precisa permitir que seus elementos sejam acessados sem que a sua estrutura interna seja exposta. ● Os observadores (observers) devem conhecer o objeto de interesse. ● O objeto de interesse (observable) deve notificar os observadores quando for atualizado.
  • 7.
  • 8. Prototype [Creational] ● Criação de objetos duplicados, focado no desempenho. ● É uma das melhores maneiras de criar um objeto. ● Mais eficiente que o new
  • 9. Funcionamento ● Uma instância do objeto fica armazenada em cache; ● Quando necessário, o objeto é copiado (deep copy);