Skip to content

Análise de viabilidade dos GoFs criacionais

Factory method

ex_padrao

Estudo viabilidade

  • Interessante para casos onde há poucas diferenças entre os herdeiros.
  • Pode ser usado em conjunto com um object pool.
  • Criação por herança.

Implementação


Abstract factory

ex_padrao

Estudo viabilidade

  • Maior flexibilidade que o Factory
  • Melhor para criar família de objetos produtos.
  • Comparável com o Prototype

Implementação

  • Caso se mostre necessário no futuro, por conta de precisar de maior flexibilidade, substituir o Factory

Singleton

ex_padrao

Estudo viabilidade

  • Desempenho por inicializar apenas quando for ser usado.
  • Faz com que a classe tenha apenas uma instância, global.
  • Complicação para deleção de instâncias.
  • Pode ser usado com abstract factory, builder e prototype.
  • Se usa apenas uma única instância de facade, logo pode se usar um singleton.

Implementação

  • Caso seja implementada uma facade abrangindo o sistema de recursos, ela será implementada como um singleton.
  • Teria sido implementado no sistema de batalhas junto à um facade, porém foi visto que não seria necessário.

Builder

ex_padrao

Estudo viabilidade

  • Interessante para construção de objetos complexos. (Talvez para CharacterSheet)
  • Melhor para criar objetos com bastante agregação.
  • Para variações nos detalhes, mas com o mesmo processo de construção.

Implementação

  • Extremamente viável para a construção de fichas de personagem, onde se muda as informações agregadas, mas o processo se mantém.

Prototype

ex_padrao

Estudo viabilidade

  • Cria uma instância que serve de "forma" para novos objetos
  • Criação por delegação. Difere dos factories aqui.
  • Se depende muito de composite e decorator, pode ser interessante usar o prototype

Implementação

  • Até o momento, não foram encontrados pontos de implementação.

Object pool

ex_padrao

Estudo viabilidade

  • A maior vantagem do object pool é o aumento de desempenho através do 'caching' de objetos.
  • Interessante de se anialisar caso tenhamos problema de desempenho com a relação partida-jogador-personagem
  • Interessante para casos de factory que precisem de tracking de objetos apos ser criados

Implementação

  • Pode valer a pena caso venha a dar problema de desempenho futuro aqui: imsd

Referências:

  • Source Making. 2019. Design patterns. [ONLINE] Available at: https://sourcemaking.com/design_patterns/. [Accessed 24 October 2019].