SlideShare uma empresa Scribd logo
Universidade Federal de Sergipe
Departamento de Ciência da Computação
         Padrões de Software e Refatoração

                              Mediator

Alunos:
Arthur Lázaro da Silva Machado
Flávio Lima França
Jesse Fernandes Silva Rocha

Professor:
Dr. Alberto Costa Neto

                     São Cristóvão, 30 de Novembro de 2011
Motivação

Caracterí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.
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?
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.
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.
Estrutura
Estrutura
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.
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.
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.
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).
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.
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.
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.
Exemplo 1
  Jogos
  - RPG
  - Luta
  - Navegação Web

1. 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.
Exemplo 2
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).
Exemplo 3
Diagrama UML
Exemplo 3



Interface
Ao clicar em um botão é executado o comando associado a ele no
Mediator.
Os elementos da interface não interagem entre si.
O Mediator conhece todos os objetos e implementa o comportamento
deles.
As requisições são feitas dos botões para o Mediator.
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

Mais conteúdo relacionado

Mais procurados

Estruturas de rede
Estruturas de redeEstruturas de rede
Estruturas de rede
cadudragon
 
Equipamentos Passivos De Rede
Equipamentos Passivos De RedeEquipamentos Passivos De Rede
Equipamentos Passivos De Rede
teixeiraafm1
 

Mais procurados (20)

Matemática das redes - parte II
Matemática das redes - parte IIMatemática das redes - parte II
Matemática das redes - parte II
 
Arquitetura de projetos IoT
Arquitetura de projetos IoTArquitetura de projetos IoT
Arquitetura de projetos IoT
 
Comunicação sem fios
Comunicação sem fiosComunicação sem fios
Comunicação sem fios
 
Alu xgpon solution for pt telkom akses 20130830+
Alu xgpon solution for pt telkom akses 20130830+Alu xgpon solution for pt telkom akses 20130830+
Alu xgpon solution for pt telkom akses 20130830+
 
Topologias De Rede
Topologias De RedeTopologias De Rede
Topologias De Rede
 
Middleware
MiddlewareMiddleware
Middleware
 
Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuído
 
Historia das redes de computadores
Historia das redes de computadoresHistoria das redes de computadores
Historia das redes de computadores
 
Estruturas de rede
Estruturas de redeEstruturas de rede
Estruturas de rede
 
Equipamentos Passivos De Rede
Equipamentos Passivos De RedeEquipamentos Passivos De Rede
Equipamentos Passivos De Rede
 
Estrutura Fisica De Redes Parte I
Estrutura Fisica De Redes  Parte IEstrutura Fisica De Redes  Parte I
Estrutura Fisica De Redes Parte I
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
Grafos
GrafosGrafos
Grafos
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-Servidor
 
Criação de uma rede
Criação de uma redeCriação de uma rede
Criação de uma rede
 
15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemas15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemas
 
Hardware de rede
Hardware de redeHardware de rede
Hardware de rede
 
Leach-Protocol
Leach-ProtocolLeach-Protocol
Leach-Protocol
 
Aula08 - frame-relay
Aula08 -   frame-relayAula08 -   frame-relay
Aula08 - frame-relay
 
Meio Físico de transmissão de dados
Meio Físico de transmissão de dadosMeio Físico de transmissão de dados
Meio Físico de transmissão de dados
 

Semelhante a Mediator Padrão de Projeto

design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
elliando dias
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
danielrpgj30
 

Semelhante a Mediator Padrão de Projeto (20)

mediator-140416223151-phpapp02.pdf
mediator-140416223151-phpapp02.pdfmediator-140416223151-phpapp02.pdf
mediator-140416223151-phpapp02.pdf
 
Aula 04.pdf
Aula 04.pdfAula 04.pdf
Aula 04.pdf
 
Gof mediator pattern
Gof   mediator patternGof   mediator pattern
Gof mediator pattern
 
Seminario sma,abms e netlogo
Seminario   sma,abms e netlogoSeminario   sma,abms e netlogo
Seminario sma,abms e netlogo
 
Sld 4
Sld 4Sld 4
Sld 4
 
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao ContextoSistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
 
Paradigma de orientação a objetos -
Paradigma de orientação a objetos - Paradigma de orientação a objetos -
Paradigma de orientação a objetos -
 
Padrões de Projeto para Jogos
Padrões de Projeto para JogosPadrões de Projeto para Jogos
Padrões de Projeto para Jogos
 
TDD Projeto e Estrategias
TDD Projeto e EstrategiasTDD Projeto e Estrategias
TDD Projeto e Estrategias
 
Desenvolvimento iOS - Aula 2
Desenvolvimento iOS - Aula 2Desenvolvimento iOS - Aula 2
Desenvolvimento iOS - Aula 2
 
POO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e InterfacePOO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e Interface
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
 
Intro oca,ocp 6 & 7, oo basics
Intro   oca,ocp 6 & 7, oo basicsIntro   oca,ocp 6 & 7, oo basics
Intro oca,ocp 6 & 7, oo basics
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Worshop w3i ars p fidalgo
Worshop w3i ars p fidalgoWorshop w3i ars p fidalgo
Worshop w3i ars p fidalgo
 
Aula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdfAula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdf
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
Orientacao a Objetos
Orientacao a ObjetosOrientacao a Objetos
Orientacao a Objetos
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
 

Mediator Padrão de Projeto

  • 1. Universidade Federal de Sergipe Departamento de Ciência da Computação Padrões de Software e Refatoração Mediator Alunos: Arthur Lázaro da Silva Machado Flávio Lima França Jesse Fernandes Silva Rocha Professor: Dr. Alberto Costa Neto São Cristóvão, 30 de Novembro de 2011
  • 2. Motivação Caracterí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. 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. 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. 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.
  • 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. 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. 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. 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. 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. 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. 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. Exemplo 1 Jogos - RPG - Luta - Navegação Web 1. 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.
  • 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).
  • 19. Exemplo 3 Interface Ao clicar em um botão é executado o comando associado a ele no Mediator. Os elementos da interface não interagem entre si. O Mediator conhece todos os objetos e implementa o comportamento deles. As requisições são feitas dos botões para o Mediator.
  • 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