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.
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.
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)
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.