Decorando um jogo com o padrão de projetos Decorator – Parte 2

By Tiago Frossard | 26/07/2009

Para fechar o artigo anterior, como foi prometido, segue abaixo o diagrama do padrão de projetos Decorator. Apesar da longa explicação e do funcionamento diferente, o diagrama é bem simples:

diagramaDecorator

Diagrama do padrão de projetos Decorator

A única coisa diferente nesse diagrama é o fato de TDecoratorBonus possuir, além da herança de TArma,  o atributo _arma do tipo TArma, fazendo assim que surjam as 2 setas. Além disso, basta não se esquecer que TEfeito e TEncantamento têm, por herança de TDecoratorBonus, seus próprios atributos _arma

O código do padrão (Action Script 3.0 com projeto Flash CS3) pode ser encontrado aqui: Decorator (66)

Artigos Relacionados:

  1. Decorando um jogo com o padrão de projetos Decorator – Parte 1
  2. Padrão de Projetos Observer: Implementando mísseis teleguiados – parte 3
  3. Padrão de Projetos Observer: Implementando mísseis teleguiados – parte 2
  4. MVC e o Linkage: O que se deve ou não fazer? (parte 1)
  5. MVC e o Linkage: O que se deve ou não fazer? (parte 2)

4 Comments

  • By Everton Vieira, 26/08/2009 @ 00:39

    Olá Tiago,
    Ótimo artigo, muito claro e didático. Este padrão de projeto é focado na evolução de objetos, sendo muito útil no desenvolvimento de jogos. Seu exemplo com armas ficou perfeito. Parabéns!!
    Fico contente que tenhas voltado a postar, a comunidade gamer agradece.

  • By Rafael Lima, 29/09/2009 @ 03:47

    Fala Tiago, sua analogia de subclasse composta para estender funcionalidade delegando responsabilidades a objetos dinamicamnete foi muito massa.

    Parabéns!

  • By Tiago Frossard, 01/10/2009 @ 20:45

    Pois é, Rafael. Sempre achei que, para explicar algo, temos que procurar um exemplo que a pessoa vivencie. Nada melhor que, aqui no NEA, falar de Padrões de Projeto e desenvolvimento de jogos ao mesmo tempo! É bom ver que é isso que agrada aos meus leitores!

Links to this Post

  1. O que raios é a UML – Parte 1 | Nuss... E agora?!? — 12/08/2009 @ 23:29

RSS feed for comments on this post. TrackBack URI

Leave a comment

WordPress Themes

Rec6plug

Search engine optimization by SEO Design Solutions