Mediator Padrão de Projeto

3,492 views
3,250 views

Published on

Apresentação sobre o padrão de projeto Mediator.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,492
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Mediator Padrão de Projeto

  1. 1. Universidade Federal de SergipeDepartamento de Ciência da Computação Padrões de Software e Refatoração MediatorAlunos:Arthur Lázaro da Silva MachadoFlávio Lima FrançaJesse Fernandes Silva RochaProfessor:Dr. Alberto Costa Neto São Cristóvão, 30 de Novembro de 2011
  2. 2. MotivaçãoCaracterísticas:• Propósito: comportamental• Escopo: objeto• Objetivos: • Criar um objeto que age como um mediador controlando a interação entre um conjunto de objetos. • Diminuir o acoplamento entre os objetos, não deixando eles se referirem entre si de maneira explícita.
  3. 3. Motivação• Como permitir que um grupo de objetos se comunique entre si sem que haja acoplamento entre eles?• Como remover o forte acoplamento presente em relacionamentos muitos para muitos?• Como permitir que novos participantes sejam ligados ao grupo facilmente?
  4. 4. Motivação• Analogia com as torres de controle e os aviões nos aeroportos. ▫ Os aviões interagem com as torres de controle e não com eles mesmos. ▫ As torres de controle sabem exatamente onde cada avião está, qual a sua rota até o destino, momento de decolagem e aterrisagem.
  5. 5. Aplicabilidade• É utilizado quando existe um grande número de objetos que se comunicam entre si de maneira bem definida, mas de forma complexa.• Quando a reusabilidade de um objeto é comprometida pelo fato dele se comunicar com muitos outros objetos.• Quando se deseja evitar a utilização excessiva de herança para distribuir o comportamento entre diversas classes.
  6. 6. Estrutura
  7. 7. Estrutura
  8. 8. Participantes• Mediator (Mediador) ▫ Define uma interface que é responsável pela comunicação com os objetos Colleague.• ConcreteMediator ▫ Implementa o comportamento cooperativo através da coordenação de objetos Colleague. ▫ É responsável por manter e conhecer o estado de seus objetos Colleague.
  9. 9. Participantes• Classes Colleague (Colaboradores) ▫ Cada classe conhece seu objeto Mediator. ▫ Cada objeto Colleague comunica-se com o seu objeto Mediator, ao invés de se comunicar com outros objetos Colleagues.
  10. 10. Colaborações• Colleagues enviam e recebem requisições do Mediator.• Cabe ao Mediator implementar o comportamento cooperativo ao tratar o redirecionamento das requisições para os objetos Colleagues responsáveis.
  11. 11. Consequências• A hierarquia de subclasses é limitada apenas à classe Mediator.• Desacoplamento entre os Colleagues.• Substitui o relacionamento de objetos de muitos-para- muitos por um-para-muitos.• Abstração da interação entre os objetos.• Centralização do comportamento (objeto monolítico).
  12. 12. Implementação• Quando existe apenas um Mediator interagindo com as classes Colleagues, então a classe abstrata Mediator pode ser omitida.• As classes Colleagues se comunicam com o Mediator quando ocorre um evento de interesse.
  13. 13. Padrões Relacionados• Facade ▫ Um mediator simplificado torna-se um padrão Facade se o mediador for a única classe ativa e se as classes Colleagues forem classes passivas.• Adapter ▫ O padrão Mediator apenas media os pedidos entre as classes Colleague.• Observer ▫ Pode implementar a comunicação entre Mediators e Colleagues no padrão Mediator.
  14. 14. Vantagens e Desvantagens• Vantagens ▫ Desacoplamento entre os diversos participantes da rede de comunicação (participantes não se conhecem); ▫ Eliminação de relacionamentos muitos para muitos (são todos substituídos por relacionamentos um para muitos); ▫ A política de comunicações está centralizada no mediador e pode ser alterada sem mexer nos colaboradores.• Desvantagens ▫ A centralização pode ser uma fonte de gargalos de desempenho e de risco para o sistema em caso de falha; ▫ Na prática, os mediadores tendem a se tornar mais complexos.
  15. 15. Exemplo 1 Jogos - RPG - Luta - Navegação Web1. Identifica que houve uma colisão.2. Analisa o poder do golpe de Ken.3. Analisa força da defesa de Ryu.4. Calcula o dano.5. Configura essa informação no personagem.
  16. 16. Exemplo 2
  17. 17. Exemplo 3• Interação entre componentes de uma janela utilizando a biblioteca SWING do Java.• Participantes: ▫ Mediator ▫ Botões ▫ Label ▫ Comando (Executa uma ação quando um botão é clicado).
  18. 18. Exemplo 3Diagrama UML
  19. 19. Exemplo 3InterfaceAo clicar em um botão é executado o comando associado a ele noMediator.Os elementos da interface não interagem entre si.O Mediator conhece todos os objetos e implementa o comportamentodeles.As requisições são feitas dos botões para o Mediator.
  20. 20. Referências• http://abrindoojogo.com.br/padroes-de-projeto-para-games-mediador• http://imasters.com.br/artigo/21642/dotnet/o-padrao-de-projeto-mediator-na- pratica• http://s2i.das.ufsc.br/tikiwiki/apresentacoes/padroes_de_projeto.pdf• http://www.allapplabs.com/java_design_patterns/mediator_pattern.htm• http://pt.appbrain.com/app/air-control-lite/dk.logisoft.aircontrol

×