SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Design Patterns
Beneficios:
Código mais enxuto, limpo, organizado, aumentar a
qualidade e diminuir a complexidade do seu código.
Principal:
Livro: iniciando os Design Patterns
Gang of four (GOF).
Padrões GOF
Alem de GOF
existem vários outros patterns como, por exemplo, Connected
Buildings, Car Connection, Positive Outdoor Space e vários
outros, esses patters somam certa de 125 padrões.
Design Pattern - Decorator
Problema : Solução :
# Necessidade de agregar novas ações volateis.
# Criaria muitas subclasses.
#Cria apenas decorator estruturando de forma correta e
chamando cada um caso seja necessario.
Design Pattern - Decorator
Carro : CarroSimples :
CarroDecorator:
Design Pattern - Decorator
CarroDesgovernadoDecorator : CarroCurvaDecorator :
Design Pattern - Decorator
Metodo Main : Saida :
*Cria um carro.
*Inicia os decoradores e o carro simples.
*Metodos são executados de dentro para fora.
Design Pattern - Decorator
Conclusão :
#API java.io é amplamente baseada nesse padrão de projeto.
Vantagens:
# combinar vários comportamentos envolvendo um objeto em vários decoradores.
# adicionar ou remover responsabilidades de um objeto em tempo de execução.
# Objetos podem ser decorados a qualquer momento.
Principal Desvantagem:
#É difícil implementar um decorador de tal forma que seu comportamento
não dependa da ordem na pilha de decoradores.
Design Patter - Observer
Problema :
#Novo celular será lançado(sem data).
#Cliente ter que ir na loja varias vezes.
#A loja notificar todos os clientes.
Design Patter - Observer
Exemplo:
Seguidores do twitter, “assinam” o perfil de uma pessoa, e são
Notificados de suas novas Postagens.
Design Patter - Observer
Exemplo Codigo java.
Observado
Extende Observable que implementa os metodos :
* addObserver – adiciona observadores.
* deleteObserver – remove observadores.
* notifyObservers – notifica os observadores.
* setChanged – seta para modificado.
* clearChanged – seta para não modificado.
* hasChanged – verifica se mudou.
* countObservers – quantidade observadores.
Observador :
Implementa Observer :
Design Patter - Observer
Design Patter - Observer
Metodo Main : Saida :
*Os clientes são notificados da chegada do Iphone XI e do Mouse Gamer.
*São Criados Funcionarios.
*é lançado um novo Item.
*Clientes e funcionarios são avisados deste novo item.
Design Patter - Observer
Metodo Main : Saida :
*Os clientes são notificados da chegada do Iphone XI e do Mouse Gamer.
*São Criados Funcionarios.
*é lançado um novo Item.
*Clientes e funcionarios são avisados deste novo item.
Design Patter - Observer
Conclusão :
#One-To-Many
#Princípio da Ligação Leve(sabem muito pouco um do outro.)
#APIs JavaBeans e Swing.
Vantagens:
#separação dos aspectos que variam na aplicação.
#programação para interface.
# interdependência entre os objetos.
#estabelecer relações entre objetos em tempo de execução.
Principal Desvantagem:
#Os assinantes são notificados em ordem aleatória.

Weitere ähnliche Inhalte

Ähnlich wie Apresentação design patterns GOF, padrão decorator e padrão Observer.

Boas práticas de django
Boas práticas de djangoBoas práticas de django
Boas práticas de djangoFilipe Ximenes
 
Como criar uma cultura de qualidade de código
Como criar uma cultura de qualidade de código Como criar uma cultura de qualidade de código
Como criar uma cultura de qualidade de código João Lethier
 
Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de DjangoLeandro Zanuz
 
Slide 02 introdução ao code igniter, utilização do bootstrap
Slide 02   introdução ao code igniter, utilização do bootstrap Slide 02   introdução ao code igniter, utilização do bootstrap
Slide 02 introdução ao code igniter, utilização do bootstrap Raniere de Lima
 
Refatorando para Testes de Unidade
Refatorando para Testes de UnidadeRefatorando para Testes de Unidade
Refatorando para Testes de UnidadeAndre Baltieri
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressJackson F. de A. Mafra
 
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...Dextra Sistemas / Etec Itu
 
Devfest Cerrado: Angular 2
Devfest Cerrado: Angular 2 Devfest Cerrado: Angular 2
Devfest Cerrado: Angular 2 Loiane Groner
 
Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDaniel Carvalhinho
 
Angular 2 em 60 minutos
Angular 2 em 60 minutosAngular 2 em 60 minutos
Angular 2 em 60 minutosLoiane Groner
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
Design System: Dominando o Design at Scale
Design System: Dominando o Design at ScaleDesign System: Dominando o Design at Scale
Design System: Dominando o Design at ScaleGuilherme Gonzalez
 

Ähnlich wie Apresentação design patterns GOF, padrão decorator e padrão Observer. (20)

Boas práticas de django
Boas práticas de djangoBoas práticas de django
Boas práticas de django
 
Como criar uma cultura de qualidade de código
Como criar uma cultura de qualidade de código Como criar uma cultura de qualidade de código
Como criar uma cultura de qualidade de código
 
Django Básico
Django BásicoDjango Básico
Django Básico
 
Refactoring - Design no Código
Refactoring - Design no CódigoRefactoring - Design no Código
Refactoring - Design no Código
 
Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de Django
 
Apresentação fdd
Apresentação fddApresentação fdd
Apresentação fdd
 
Python 06
Python 06Python 06
Python 06
 
Slide 02 introdução ao code igniter, utilização do bootstrap
Slide 02   introdução ao code igniter, utilização do bootstrap Slide 02   introdução ao code igniter, utilização do bootstrap
Slide 02 introdução ao code igniter, utilização do bootstrap
 
Refatorando para Testes de Unidade
Refatorando para Testes de UnidadeRefatorando para Testes de Unidade
Refatorando para Testes de Unidade
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPress
 
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
 
Webinar Magento Commerce
Webinar Magento Commerce Webinar Magento Commerce
Webinar Magento Commerce
 
Domain driven design - Visão Geral
Domain driven design - Visão GeralDomain driven design - Visão Geral
Domain driven design - Visão Geral
 
Devfest Cerrado: Angular 2
Devfest Cerrado: Angular 2 Devfest Cerrado: Angular 2
Devfest Cerrado: Angular 2
 
Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de Software
 
Angular 2 em 60 minutos
Angular 2 em 60 minutosAngular 2 em 60 minutos
Angular 2 em 60 minutos
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Design System: Dominando o Design at Scale
Design System: Dominando o Design at ScaleDesign System: Dominando o Design at Scale
Design System: Dominando o Design at Scale
 
Curso Básico Android - Aula 05
Curso Básico Android - Aula 05Curso Básico Android - Aula 05
Curso Básico Android - Aula 05
 

Apresentação design patterns GOF, padrão decorator e padrão Observer.

  • 1. Design Patterns Beneficios: Código mais enxuto, limpo, organizado, aumentar a qualidade e diminuir a complexidade do seu código. Principal: Livro: iniciando os Design Patterns Gang of four (GOF).
  • 3. Alem de GOF existem vários outros patterns como, por exemplo, Connected Buildings, Car Connection, Positive Outdoor Space e vários outros, esses patters somam certa de 125 padrões.
  • 4. Design Pattern - Decorator Problema : Solução : # Necessidade de agregar novas ações volateis. # Criaria muitas subclasses. #Cria apenas decorator estruturando de forma correta e chamando cada um caso seja necessario.
  • 5. Design Pattern - Decorator Carro : CarroSimples : CarroDecorator:
  • 6. Design Pattern - Decorator CarroDesgovernadoDecorator : CarroCurvaDecorator :
  • 7. Design Pattern - Decorator Metodo Main : Saida : *Cria um carro. *Inicia os decoradores e o carro simples. *Metodos são executados de dentro para fora.
  • 8. Design Pattern - Decorator Conclusão : #API java.io é amplamente baseada nesse padrão de projeto. Vantagens: # combinar vários comportamentos envolvendo um objeto em vários decoradores. # adicionar ou remover responsabilidades de um objeto em tempo de execução. # Objetos podem ser decorados a qualquer momento. Principal Desvantagem: #É difícil implementar um decorador de tal forma que seu comportamento não dependa da ordem na pilha de decoradores.
  • 9. Design Patter - Observer Problema : #Novo celular será lançado(sem data). #Cliente ter que ir na loja varias vezes. #A loja notificar todos os clientes.
  • 10. Design Patter - Observer Exemplo: Seguidores do twitter, “assinam” o perfil de uma pessoa, e são Notificados de suas novas Postagens.
  • 11. Design Patter - Observer Exemplo Codigo java. Observado Extende Observable que implementa os metodos : * addObserver – adiciona observadores. * deleteObserver – remove observadores. * notifyObservers – notifica os observadores. * setChanged – seta para modificado. * clearChanged – seta para não modificado. * hasChanged – verifica se mudou. * countObservers – quantidade observadores.
  • 12. Observador : Implementa Observer : Design Patter - Observer
  • 13. Design Patter - Observer Metodo Main : Saida : *Os clientes são notificados da chegada do Iphone XI e do Mouse Gamer. *São Criados Funcionarios. *é lançado um novo Item. *Clientes e funcionarios são avisados deste novo item.
  • 14. Design Patter - Observer Metodo Main : Saida : *Os clientes são notificados da chegada do Iphone XI e do Mouse Gamer. *São Criados Funcionarios. *é lançado um novo Item. *Clientes e funcionarios são avisados deste novo item.
  • 15. Design Patter - Observer Conclusão : #One-To-Many #Princípio da Ligação Leve(sabem muito pouco um do outro.) #APIs JavaBeans e Swing. Vantagens: #separação dos aspectos que variam na aplicação. #programação para interface. # interdependência entre os objetos. #estabelecer relações entre objetos em tempo de execução. Principal Desvantagem: #Os assinantes são notificados em ordem aleatória.