padrões de projeto para jogos

41
Padrões de projetos para jogos Alunos : Robson Cavalcante de Negreiros Lucas Sales Vieira Prof° responsável : Camilo Camilo Almendra

Upload: robson-de-negreiros

Post on 07-Jul-2015

133 views

Category:

Software


4 download

DESCRIPTION

Alguns Padrões de Projeto utilizados em jogos.

TRANSCRIPT

Page 1: Padrões de Projeto para Jogos

Padrões de projetos para jogos

● Alunos : Robson Cavalcante de Negreiros

Lucas Sales Vieira● Prof° responsável : Camilo Camilo Almendra

Page 2: Padrões de Projeto para Jogos

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.

Page 3: Padrões de Projeto para Jogos

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.

Page 4: Padrões de Projeto para Jogos

Alguns dos padrões mais utilizados em jogos

● Builder

● State

● Command

● Memento

● Mediator

● Observer

Page 5: Padrões de Projeto para Jogos

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.

Page 6: Padrões de Projeto para Jogos

Diagrama Classe : Builder

Page 7: Padrões de Projeto para Jogos

● 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

Page 8: Padrões de Projeto para Jogos

Exemplo código

Page 9: Padrões de Projeto para Jogos

Exemplo código

Page 10: Padrões de Projeto para Jogos

Exemplo código

Page 11: Padrões de Projeto para Jogos

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.

Page 12: Padrões de Projeto para Jogos

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.

Page 13: Padrões de Projeto para Jogos

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.

Page 14: Padrões de Projeto para Jogos

Aplicabilidade : State

● Quando uma classe desempenha vários comportamentos

● Quando classes relacionadas forem diferentes apenas no comportamento

Page 15: Padrões de Projeto para Jogos

Vantagens : State

● Faz as mudanças de estado explícitas.

● Os objetos Estado podem ser compartilhados se eles não contêm variáveis de 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.

Page 16: Padrões de Projeto para Jogos

Exemplo código

\

Page 17: Padrões de Projeto para Jogos

Exemplo código

Page 18: Padrões de Projeto para Jogos

Exemplo código

Page 19: Padrões de Projeto para Jogos

Desvantagem : State

● Aumenta o número de subclasses

Page 20: Padrões de Projeto para Jogos

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)

Page 21: Padrões de Projeto para Jogos

Diagrama Classe: Command

Page 22: Padrões de Projeto para Jogos

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.

Page 23: Padrões de Projeto para Jogos

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.

Page 24: Padrões de Projeto para Jogos

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;

Page 25: Padrões de Projeto para Jogos

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.

Page 26: Padrões de Projeto para Jogos

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.

Page 27: Padrões de Projeto para Jogos

Diagrama de Classe

Page 28: Padrões de Projeto para Jogos

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.

Page 29: Padrões de Projeto para Jogos

Diagrama de sequência

Page 30: Padrões de Projeto para Jogos

Padrão Mediator

● É um padrão comportamental utilizado para gerenciar a comunicação entre dois ou mais objetos.

Page 31: Padrões de Projeto para Jogos

Por que utilizá-lo?

● O Mediator promove o acoplamento fraco ao evitar que os objetos se refiram uns aos outros explicitamente

Page 32: Padrões de Projeto para Jogos

Diagrama Classe : Mediator

Page 33: Padrões de Projeto para Jogos

Diagrama Sequencia : Mediator

Page 34: Padrões de Projeto para Jogos

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.

Page 35: Padrões de Projeto para Jogos

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

Page 36: Padrões de Projeto para Jogos

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

Page 37: Padrões de Projeto para Jogos

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)

Page 38: Padrões de Projeto para Jogos

Diagrama Classe : Observer

Page 39: Padrões de Projeto para Jogos

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.

Page 40: Padrões de Projeto para Jogos

Diagrama Sequencia : Observer

Page 41: Padrões de Projeto para Jogos

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/padrao-de-projeto

Contatos :

[email protected]

[email protected]