SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Padrões de projetos para jogos 
● Alunos : Robson Cavalcante de Negreiros 
Lucas Sales Vieira 
● Prof° responsável : Camilo Camilo Almendra
O que é um padrão de projeto 
● É uma solução geral reutilizável para um problema que 
ocorre com frequência dentro de um determinado contexto 
no projeto de software.
Categorias segundo (GoF) 
● Padrões de criação:relacionado a instanciação de 
objetos. 
● Padrões de estrutura: tratam das ações entre classe e 
objetos, como são construídos para formar estruturas 
maiores. 
● Padrões de comportamento: tratam das interações e 
divisões entre classes e objetos, ou seja, dos algoritmos e 
atribuições de responsabilidades entre objetos com foco 
na comunicação entre os mesmos.
Alguns dos padrões mais utilizados em 
jogos 
● Builder 
● State 
● Command 
● Memento 
● Mediator 
● Observer
Padrão Builder 
● Separar a construção de um objeto complexo da sua 
representação, de modo que o mesmo processo de 
construção possa criar diferentes representações.
Diagrama Classe : Builder
● Builder : 
É a Interface Abstrata para a criação das partes de um objeto. 
● ConcreteBuilder : 
Constroe e monta as partes do objeto pela implementação da 
interface Builder. 
Fornece a interface para recuperar o produto. 
● Director : 
Constroe o objeto de acordo com Builder que recebeu. 
● Product : 
Representa o objeto complexo em construção
Exemplo código
Exemplo código
Exemplo código
Desvantagens do Padrão Builder 
● Um problema com o padrão é que é preciso sempre 
chamar o método de construção para depois utilizar o 
produto em si.
Padrão State 
● Ele permite um objeto alterar seu comportamento quando 
o seu estado interno muda. Esta mudança é significativa e 
visível para o usuário, assemelhando-se a troca de classe.
Quando Usar o padrão State 
● O comportamento de um objeto depende do seu estado e 
ele deve mudar o seu comportamento em tempo de 
execução dependendo do estado. 
● Os métodos têm grandes instruções condicionais em que 
as condições dependem do estado do objeto.
Aplicabilidade : State 
● Quando uma classe desempenha vários comportamentos 
● Quando classes relacionadas forem diferentes apenas no 
comportamento
Vantagens : State 
● Faz as mudanças de estado explícitas. 
● Os objetos Estado podem ser compartilhados se eles não 
contêm variáveis d e instância. 
● Permite a um objeto alterar de classe em tempo de 
execução dado que ao modificar suas responsabilidades 
pela de outro objeto de outra classe, a herança e 
responsabilidades do primeiro mudaram pelas do 
segundo.
Exemplo código
Exemplo código
Exemplo código
Desvantagem : State 
● Aumenta o número de subclasses
Padrão Command 
● O padrão de projeto (Design Pattern) Command é um 
padrão comportamental cuja intenção é encapsular uma 
solicitação como um objeto e desta forma permitir que 
você parametrize clientes com diferentes solicitações, 
enfileire ou registre(log) solicitações e suporte operações 
que podem ser desfeitas.(GoF)
Diagrama Classe: Command
Command 
● Comando: É a classe abstrata ou interface para a executar 
a operação, ela é a base para todo objeto Comando. 
● ComandoConcreto: Implementa a operação executar() e 
possui a relação com o Receptor para executar a ação 
usando o mesmo a ela vinculado. 
● Client : Cria o ComandoConcreto e atribui a vinculação 
com o seu Receptor correspondente. 
● Receptor : Conhece como executar as operações 
associadas com a execução do comando.
Aplicabilidade Command 
● Queremos parametrizar objetos por uma ação a ser 
executada; 
● Queremos especificar, enfileirar e executar solicitações 
em tempos diferentes; 
● Queremos dar suporte para desfazer operações; 
● Estruturar um sistema em torno de operações de alto 
nível, como transações por exemplo; 
● Reduzir acoplamento entre as requisições dos clientes 
e o objetos que as executam; 
● Para facilitar a implantação de novas operações e 
tornar mais simples a manutenção das operações.
Vantagens Command 
● O padrão Command desacopla o objeto que invoca a 
operação daquele que sabe como executá-la; 
● O padrão Command reduz o acoplamento 
(dependência) entre o objeto que chama a operação e o 
objeto que executa a operação; 
● Um comando pode ser composto por outros comandos; 
● É fácil acrescentar novos Commands porque não é 
preciso mudar as classes existentes;
Padrão Memento 
● Captura o estado de um objeto em um determinado 
momento, de maneira que este possa voltar a esse estado 
mais tarde. Sem violar o encapsulamento.
Aplicabilidade : Memento 
● Na implementação de ações de “voltar , desfazer” 
● Para o armazenamento de estados a serem restaurados 
de um objeto. 
● Para a captura de estados de objetos que são encobertos 
por encapsulamento.
Diagrama de Classe
Memento 
● Care Taker : Cuida do gerenciamento dos mementos. 
● Memento : É a classe que representa a memoria do 
estado do objeto. 
● Originator : É o objeto que terá seu estado armazenado.
Diagrama de sequência
Padrão Mediator 
● É um padrão comportamental utilizado para gerenciar a 
comunicação entre dois ou mais objetos.
Por que utilizá-lo? 
● O Mediator promove o acoplamento fraco ao evitar que os 
objetos se refiram uns aos outros explicitamente
Diagrama Classe : Mediator
Diagrama Sequencia : Mediator
Vantagens Padrão Mediator 
● Uma vantagem interessante, é a possibilidade de mudar o 
comportamento do mediator. É possível extendê-lo e 
trocar seu funcionamento, sem ter que alterar nenhuma 
das outras classes existentes.
Padrão Observer 
Define uma dependência uma para muitos entre objetos, de 
maneira que quando em objeto muda de estado todos os 
seus dependentes são notificados e atualizados 
automaticamente
Como garantir que os objetos 
perceba a mudança 
● Os observadores devem conhecer o objeto de que os 
interessam 
● O objeto de interesse deve notificar os observadores 
quando for mudado
Aplicabilidade : Observer 
● Quando uma mudança a um objeto requer mudanças a 
outros e você não sabe quantos outros objetos devem 
mudar ou quando um objeto deve ser capaz de avisar 
outros sem fazer suposições sobre quem são os 
objetos(ou seja não cria alto aclopamento)
Diagrama Classe : Observer
Observer 
● Observable : Tem uma interface para adicionar e remover 
observadores, ele conhece vários observadores e possui 
um método para modicar. 
● ConcreteObservable : Mantém o estado dos 
Observadores. 
● Observer : Define uma interface de atualização. 
● ConcreteObserver : Mantém referência ou recebe 
referência para o objeto em observação.
Diagrama Sequencia : Observer
Referências 
● https://brizeno.wordpress.com/category/padroes-de-projeto/builder/ 
● https://brizeno.wordpress.com/category/padroes-de-projeto/command/ 
● https://brizeno.wordpress.com/category/padroes-de-projeto/state/ 
● http://abrindoojogo.com.br/category/tecnico/projeto-de-software/Contatos : 
robsoncavalcante.es@gmail.com 
lucasalesvieira2@gmail.com

Weitere ähnliche Inhalte

Was ist angesagt?

Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequenciaItalo Costa
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de UsoNatanael Simões
 
Identificar el negocio de cliente
Identificar el negocio de clienteIdentificar el negocio de cliente
Identificar el negocio de clienteRene Guaman-Quinche
 
Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesEstrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesAdriano Teixeira de Souza
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfacesRafael Pinheiro
 
Normalização - Banco de Dados
Normalização - Banco de DadosNormalização - Banco de Dados
Normalização - Banco de DadosRoberto Grande
 
Diagrama de Atividades - UML
Diagrama de Atividades - UMLDiagrama de Atividades - UML
Diagrama de Atividades - UMLVinícius Barros
 
Poo encapsulamento
Poo encapsulamentoPoo encapsulamento
Poo encapsulamentoSedu
 
Fundamentos de Padrões de Projeto de Software
Fundamentos de Padrões de Projeto de SoftwareFundamentos de Padrões de Projeto de Software
Fundamentos de Padrões de Projeto de SoftwareÁlvaro Farias Pinheiro
 
Aula 04 - Diagrama de casos de uso
Aula 04 - Diagrama de casos de usoAula 04 - Diagrama de casos de uso
Aula 04 - Diagrama de casos de usoLeinylson Fontinele
 

Was ist angesagt? (20)

Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequencia
 
Aula8 diagrama sequencia
Aula8 diagrama sequenciaAula8 diagrama sequencia
Aula8 diagrama sequencia
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
 
Identificar el negocio de cliente
Identificar el negocio de clienteIdentificar el negocio de cliente
Identificar el negocio de cliente
 
Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesEstrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e Funções
 
Diagrama sequencia
Diagrama sequenciaDiagrama sequencia
Diagrama sequencia
 
Aula02 - JavaScript
Aula02 - JavaScriptAula02 - JavaScript
Aula02 - JavaScript
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfaces
 
Fundamentos do java
Fundamentos do javaFundamentos do java
Fundamentos do java
 
Normalização - Banco de Dados
Normalização - Banco de DadosNormalização - Banco de Dados
Normalização - Banco de Dados
 
Diagrama de Atividades - UML
Diagrama de Atividades - UMLDiagrama de Atividades - UML
Diagrama de Atividades - UML
 
UML
UMLUML
UML
 
Poo encapsulamento
Poo encapsulamentoPoo encapsulamento
Poo encapsulamento
 
Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2
 
Fundamentos de Padrões de Projeto de Software
Fundamentos de Padrões de Projeto de SoftwareFundamentos de Padrões de Projeto de Software
Fundamentos de Padrões de Projeto de Software
 
Aula 04 - Diagrama de casos de uso
Aula 04 - Diagrama de casos de usoAula 04 - Diagrama de casos de uso
Aula 04 - Diagrama de casos de uso
 
Aula 1 - Revisão UML
Aula 1 - Revisão UMLAula 1 - Revisão UML
Aula 1 - Revisão UML
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
Scrum
ScrumScrum
Scrum
 

Andere mochten auch

Aula 04 - UML e Padrões de Projeto
Aula 04 - UML e Padrões de ProjetoAula 04 - UML e Padrões de Projeto
Aula 04 - UML e Padrões de ProjetoVinícius de Paula
 
Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)Nécio de Lima Veras
 
Strategy - Padrões de Projeto
Strategy - Padrões de ProjetoStrategy - Padrões de Projeto
Strategy - Padrões de ProjetoEduardo Mendes
 
Engenharia de Software Educacional
Engenharia de Software EducacionalEngenharia de Software Educacional
Engenharia de Software EducacionalLanylldo Araujo
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Renato Leal
 
Universidade federal de alagoas ufal
Universidade federal de alagoas ufalUniversidade federal de alagoas ufal
Universidade federal de alagoas ufalSamária Maria
 
Softwares educacionais
Softwares educacionaisSoftwares educacionais
Softwares educacionaisNaysa Taboada
 
Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Alessandro Almeida
 
Engenharia de software aplicada ao software educacional: desafios, problemas ...
Engenharia de software aplicada ao software educacional: desafios, problemas ...Engenharia de software aplicada ao software educacional: desafios, problemas ...
Engenharia de software aplicada ao software educacional: desafios, problemas ...sergiocrespo
 
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareAplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareCesar Rocha
 
Publish-Subscribe Middlewares
Publish-Subscribe MiddlewaresPublish-Subscribe Middlewares
Publish-Subscribe Middlewareshome
 
Padrões de Projeto - Observer
Padrões de Projeto - ObserverPadrões de Projeto - Observer
Padrões de Projeto - ObserverJuliana Cindra
 
Ciclo de vida de software
Ciclo de vida de software Ciclo de vida de software
Ciclo de vida de software caricati
 
Padrão de Projeto Observer
Padrão de Projeto ObserverPadrão de Projeto Observer
Padrão de Projeto ObserverLuiza Uira
 
Desenvolvimento de Jogos - Mercado Parte 2
Desenvolvimento de Jogos - Mercado Parte 2Desenvolvimento de Jogos - Mercado Parte 2
Desenvolvimento de Jogos - Mercado Parte 2Fabio Moura Pereira
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerMarkus Christen
 
Publisher subscriber pattern
Publisher subscriber patternPublisher subscriber pattern
Publisher subscriber patternDaeMyung Kang
 
Publish & Subscribe to events using an Event Aggregator
Publish & Subscribe to events using an Event AggregatorPublish & Subscribe to events using an Event Aggregator
Publish & Subscribe to events using an Event AggregatorLars-Erik Kindblad
 

Andere mochten auch (20)

Aula 04 - UML e Padrões de Projeto
Aula 04 - UML e Padrões de ProjetoAula 04 - UML e Padrões de Projeto
Aula 04 - UML e Padrões de Projeto
 
Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)
 
Strategy - Padrões de Projeto
Strategy - Padrões de ProjetoStrategy - Padrões de Projeto
Strategy - Padrões de Projeto
 
Games, lado dev
Games, lado devGames, lado dev
Games, lado dev
 
Padrões de Projeto (GoF)
Padrões de Projeto (GoF)Padrões de Projeto (GoF)
Padrões de Projeto (GoF)
 
Engenharia de Software Educacional
Engenharia de Software EducacionalEngenharia de Software Educacional
Engenharia de Software Educacional
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
 
Universidade federal de alagoas ufal
Universidade federal de alagoas ufalUniversidade federal de alagoas ufal
Universidade federal de alagoas ufal
 
Softwares educacionais
Softwares educacionaisSoftwares educacionais
Softwares educacionais
 
Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)
 
Engenharia de software aplicada ao software educacional: desafios, problemas ...
Engenharia de software aplicada ao software educacional: desafios, problemas ...Engenharia de software aplicada ao software educacional: desafios, problemas ...
Engenharia de software aplicada ao software educacional: desafios, problemas ...
 
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareAplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
 
Publish-Subscribe Middlewares
Publish-Subscribe MiddlewaresPublish-Subscribe Middlewares
Publish-Subscribe Middlewares
 
Padrões de Projeto - Observer
Padrões de Projeto - ObserverPadrões de Projeto - Observer
Padrões de Projeto - Observer
 
Ciclo de vida de software
Ciclo de vida de software Ciclo de vida de software
Ciclo de vida de software
 
Padrão de Projeto Observer
Padrão de Projeto ObserverPadrão de Projeto Observer
Padrão de Projeto Observer
 
Desenvolvimento de Jogos - Mercado Parte 2
Desenvolvimento de Jogos - Mercado Parte 2Desenvolvimento de Jogos - Mercado Parte 2
Desenvolvimento de Jogos - Mercado Parte 2
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk Server
 
Publisher subscriber pattern
Publisher subscriber patternPublisher subscriber pattern
Publisher subscriber pattern
 
Publish & Subscribe to events using an Event Aggregator
Publish & Subscribe to events using an Event AggregatorPublish & Subscribe to events using an Event Aggregator
Publish & Subscribe to events using an Event Aggregator
 

Ähnlich wie Padrões de Projeto para Jogos

Padrões de projetos
Padrões de projetosPadrões de projetos
Padrões de projetosGustavo Souza
 
Workshop React Hooks
Workshop React HooksWorkshop React Hooks
Workshop React HooksDan Vitoriano
 
Liferay Kaleo Workflow com atribuição por categorias
Liferay Kaleo Workflow com atribuição por categoriasLiferay Kaleo Workflow com atribuição por categorias
Liferay Kaleo Workflow com atribuição por categoriasFernando Fernández
 
Hooks em React: o novo jeito de fazer componentes funcionais
Hooks em React: o novo jeito de fazer componentes funcionaisHooks em React: o novo jeito de fazer componentes funcionais
Hooks em React: o novo jeito de fazer componentes funcionaisGDGFoz
 
BlingTech - Padrões de Projeto
BlingTech - Padrões de ProjetoBlingTech - Padrões de Projeto
BlingTech - Padrões de ProjetoFernando Henrique
 
Arquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhrArquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhrThiago Boufleuhr
 
Aulas de análise
Aulas de análiseAulas de análise
Aulas de análiseFrank Lira
 
Aulas de análise
Aulas de análiseAulas de análise
Aulas de análiseFrank Lira
 
Linguagem de programação introdução v1
Linguagem de programação   introdução v1Linguagem de programação   introdução v1
Linguagem de programação introdução v1Carlos Melo
 
Orientação a objetos da teoria a prática em java
Orientação a objetos   da teoria a prática em java Orientação a objetos   da teoria a prática em java
Orientação a objetos da teoria a prática em java Fabiano Lima
 
342336684-GSI030-Aula08-projetoImplementacao.pdf
342336684-GSI030-Aula08-projetoImplementacao.pdf342336684-GSI030-Aula08-projetoImplementacao.pdf
342336684-GSI030-Aula08-projetoImplementacao.pdfGabrielMarchesan
 
Introdução da uml e diagramas parte1
Introdução da uml e diagramas parte1Introdução da uml e diagramas parte1
Introdução da uml e diagramas parte1Crislampa43
 

Ähnlich wie Padrões de Projeto para Jogos (20)

Padrões de projetos
Padrões de projetosPadrões de projetos
Padrões de projetos
 
Padroes de Projeto
Padroes de ProjetoPadroes de Projeto
Padroes de Projeto
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Workshop React Hooks
Workshop React HooksWorkshop React Hooks
Workshop React Hooks
 
Liferay Kaleo Workflow com atribuição por categorias
Liferay Kaleo Workflow com atribuição por categoriasLiferay Kaleo Workflow com atribuição por categorias
Liferay Kaleo Workflow com atribuição por categorias
 
React Hooks
React HooksReact Hooks
React Hooks
 
Hooks em React: o novo jeito de fazer componentes funcionais
Hooks em React: o novo jeito de fazer componentes funcionaisHooks em React: o novo jeito de fazer componentes funcionais
Hooks em React: o novo jeito de fazer componentes funcionais
 
Angular 2
Angular 2Angular 2
Angular 2
 
Começando com React.js
Começando com React.jsComeçando com React.js
Começando com React.js
 
BlingTech - Padrões de Projeto
BlingTech - Padrões de ProjetoBlingTech - Padrões de Projeto
BlingTech - Padrões de Projeto
 
Padrões de design orientado a objetos
Padrões de design orientado a objetosPadrões de design orientado a objetos
Padrões de design orientado a objetos
 
Arquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhrArquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhr
 
Quick reference
Quick referenceQuick reference
Quick reference
 
Aulas de análise
Aulas de análiseAulas de análise
Aulas de análise
 
Aulas de análise
Aulas de análiseAulas de análise
Aulas de análise
 
Linguagem de programação introdução v1
Linguagem de programação   introdução v1Linguagem de programação   introdução v1
Linguagem de programação introdução v1
 
Orientação a objetos da teoria a prática em java
Orientação a objetos   da teoria a prática em java Orientação a objetos   da teoria a prática em java
Orientação a objetos da teoria a prática em java
 
342336684-GSI030-Aula08-projetoImplementacao.pdf
342336684-GSI030-Aula08-projetoImplementacao.pdf342336684-GSI030-Aula08-projetoImplementacao.pdf
342336684-GSI030-Aula08-projetoImplementacao.pdf
 
Introdução da uml e diagramas parte1
Introdução da uml e diagramas parte1Introdução da uml e diagramas parte1
Introdução da uml e diagramas parte1
 
Travalho versao final
Travalho versao finalTravalho versao final
Travalho versao final
 

Padrões de Projeto para Jogos

  • 1. Padrões de projetos para jogos ● Alunos : Robson Cavalcante de Negreiros Lucas Sales Vieira ● Prof° responsável : Camilo Camilo Almendra
  • 2. O que é um padrão de projeto ● É uma solução geral reutilizável para um problema que ocorre com frequência dentro de um determinado contexto no projeto de software.
  • 3. Categorias segundo (GoF) ● Padrões de criação:relacionado a instanciação de objetos. ● Padrões de estrutura: tratam das ações entre classe e objetos, como são construídos para formar estruturas maiores. ● Padrões de comportamento: tratam das interações e divisões entre classes e objetos, ou seja, dos algoritmos e atribuições de responsabilidades entre objetos com foco na comunicação entre os mesmos.
  • 4. Alguns dos padrões mais utilizados em jogos ● Builder ● State ● Command ● Memento ● Mediator ● Observer
  • 5. Padrão Builder ● Separar a construção de um objeto complexo da sua representação, de modo que o mesmo processo de construção possa criar diferentes representações.
  • 7. ● Builder : É a Interface Abstrata para a criação das partes de um objeto. ● ConcreteBuilder : Constroe e monta as partes do objeto pela implementação da interface Builder. Fornece a interface para recuperar o produto. ● Director : Constroe o objeto de acordo com Builder que recebeu. ● Product : Representa o objeto complexo em construção
  • 11. Desvantagens do Padrão Builder ● Um problema com o padrão é que é preciso sempre chamar o método de construção para depois utilizar o produto em si.
  • 12. Padrão State ● Ele permite um objeto alterar seu comportamento quando o seu estado interno muda. Esta mudança é significativa e visível para o usuário, assemelhando-se a troca de classe.
  • 13. Quando Usar o padrão State ● O comportamento de um objeto depende do seu estado e ele deve mudar o seu comportamento em tempo de execução dependendo do estado. ● Os métodos têm grandes instruções condicionais em que as condições dependem do estado do objeto.
  • 14. Aplicabilidade : State ● Quando uma classe desempenha vários comportamentos ● Quando classes relacionadas forem diferentes apenas no comportamento
  • 15. Vantagens : State ● Faz as mudanças de estado explícitas. ● Os objetos Estado podem ser compartilhados se eles não contêm variáveis d e instância. ● Permite a um objeto alterar de classe em tempo de execução dado que ao modificar suas responsabilidades pela de outro objeto de outra classe, a herança e responsabilidades do primeiro mudaram pelas do segundo.
  • 19. Desvantagem : State ● Aumenta o número de subclasses
  • 20. Padrão Command ● O padrão de projeto (Design Pattern) Command é um padrão comportamental cuja intenção é encapsular uma solicitação como um objeto e desta forma permitir que você parametrize clientes com diferentes solicitações, enfileire ou registre(log) solicitações e suporte operações que podem ser desfeitas.(GoF)
  • 22. Command ● Comando: É a classe abstrata ou interface para a executar a operação, ela é a base para todo objeto Comando. ● ComandoConcreto: Implementa a operação executar() e possui a relação com o Receptor para executar a ação usando o mesmo a ela vinculado. ● Client : Cria o ComandoConcreto e atribui a vinculação com o seu Receptor correspondente. ● Receptor : Conhece como executar as operações associadas com a execução do comando.
  • 23. Aplicabilidade Command ● Queremos parametrizar objetos por uma ação a ser executada; ● Queremos especificar, enfileirar e executar solicitações em tempos diferentes; ● Queremos dar suporte para desfazer operações; ● Estruturar um sistema em torno de operações de alto nível, como transações por exemplo; ● Reduzir acoplamento entre as requisições dos clientes e o objetos que as executam; ● Para facilitar a implantação de novas operações e tornar mais simples a manutenção das operações.
  • 24. Vantagens Command ● O padrão Command desacopla o objeto que invoca a operação daquele que sabe como executá-la; ● O padrão Command reduz o acoplamento (dependência) entre o objeto que chama a operação e o objeto que executa a operação; ● Um comando pode ser composto por outros comandos; ● É fácil acrescentar novos Commands porque não é preciso mudar as classes existentes;
  • 25. Padrão Memento ● Captura o estado de um objeto em um determinado momento, de maneira que este possa voltar a esse estado mais tarde. Sem violar o encapsulamento.
  • 26. Aplicabilidade : Memento ● Na implementação de ações de “voltar , desfazer” ● Para o armazenamento de estados a serem restaurados de um objeto. ● Para a captura de estados de objetos que são encobertos por encapsulamento.
  • 28. Memento ● Care Taker : Cuida do gerenciamento dos mementos. ● Memento : É a classe que representa a memoria do estado do objeto. ● Originator : É o objeto que terá seu estado armazenado.
  • 30. Padrão Mediator ● É um padrão comportamental utilizado para gerenciar a comunicação entre dois ou mais objetos.
  • 31. Por que utilizá-lo? ● O Mediator promove o acoplamento fraco ao evitar que os objetos se refiram uns aos outros explicitamente
  • 32. Diagrama Classe : Mediator
  • 34. Vantagens Padrão Mediator ● Uma vantagem interessante, é a possibilidade de mudar o comportamento do mediator. É possível extendê-lo e trocar seu funcionamento, sem ter que alterar nenhuma das outras classes existentes.
  • 35. Padrão Observer Define uma dependência uma para muitos entre objetos, de maneira que quando em objeto muda de estado todos os seus dependentes são notificados e atualizados automaticamente
  • 36. Como garantir que os objetos perceba a mudança ● Os observadores devem conhecer o objeto de que os interessam ● O objeto de interesse deve notificar os observadores quando for mudado
  • 37. Aplicabilidade : Observer ● Quando uma mudança a um objeto requer mudanças a outros e você não sabe quantos outros objetos devem mudar ou quando um objeto deve ser capaz de avisar outros sem fazer suposições sobre quem são os objetos(ou seja não cria alto aclopamento)
  • 38. Diagrama Classe : Observer
  • 39. Observer ● Observable : Tem uma interface para adicionar e remover observadores, ele conhece vários observadores e possui um método para modicar. ● ConcreteObservable : Mantém o estado dos Observadores. ● Observer : Define uma interface de atualização. ● ConcreteObserver : Mantém referência ou recebe referência para o objeto em observação.
  • 41. Referências ● https://brizeno.wordpress.com/category/padroes-de-projeto/builder/ ● https://brizeno.wordpress.com/category/padroes-de-projeto/command/ ● https://brizeno.wordpress.com/category/padroes-de-projeto/state/ ● http://abrindoojogo.com.br/category/tecnico/projeto-de-software/Contatos : robsoncavalcante.es@gmail.com lucasalesvieira2@gmail.com