SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Mediator
Eder Carlos
George Freire
Wagner Castro
UFRN
INSTITUTO METRÓPOLE DIGITAL
PÓS-GRADUAÇÃO/RESIDÊNCIA EM ENGENHARIA DE SOFTWARE
Natal, outubro de 2013
Sumário
• INTRODUÇÃO
• INTENÇÃO
• APLICABILIDADE
• ESTRUTURA
• VANTAGENS x DESVANTAGENS
• PADRÕES RELACIONADOS
• IMPLEMENTAÇÃO
• REFERÊNCIAS
Introdução
PADRÕES DE PROJETO GOF
CRIACIONAIS
COMPORTAMENTAIS
ESTRUTURAIS
MEDIATOR
Intenção
• “Definir um objeto que encapsula a forma como um conjunto
de objetos interage. O Mediator promove o acoplamento
fraco ao evitar que objetos se refiram uns aos outros
explicitamente e permitir variar suas interações
independentemente” (Gof).
• Exemplo: interações entre páginas web de um ecommerce.
Intenção
• Atua como mediador entre relacionamentos “muitos para
muitos”, concentrando a maneira como os objetos interagem.
• Exemplo: Inúmeros embarques e desembarques gerenciados
por um Centro Controlador de Tráfego Aéreo.
Aplicabilidade
• Quando um conjunto de objetos se comunica entre si de
modo bem definido , mas complexo;
• Quando é difícil reusar um objeto porque ele se comunica
com muitos outros objetos ;
• Quando o comportamento distribuído entre diversas classes
deve ser personalizado sem excesso de subclasses;
• Exemplos:
• Muito útil para programadores Visual Basic (principalmente das
versões 5 e 6), pois ele é um atalho para a falta de herança.
• Java Message Service (JMS);
• Java.util.Timer class scheduleXXX() methods;
• Java Concurrency Executor execute () method;
• Java.lang.reflect.Method invoke() method;
Estrutura
Estrutura
• Mediator:
• Define uma interface de comunicação com objetos da classe
Colleague;
• Concrete Mediator:
• Faz a implementação do comportamento cooperativo através da
coordenação de objetos Colleague;
• Responsável por manter e conhecer os objetos da classe
Colleague.
• Colleague Classes:
• Cada classe conhece seu mediador;
• Os objetos Colleague se comunicam com seu objeto Mediator, ao
invés de se comunicar com outros objetos Colleagues.
Vantagens x 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.
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: Os padrões Mediator e Observer são
semelhantes, resolvendo o mesmo problema.
Implementação - Chat
Referências
• Design Patterns: Elements of Reusable Object-Oriented
Software
• http://imasters.com.br/artigo/21642/dotnet/o-padrao-de-
projeto-mediator-na-pratica/
• http://brizeno.wordpress.com/category/padroes-de-
projeto/mediator/
• http://www.javacodegeeks.com/2013/08/mediator-design-
pattern-in-java-example-tutorial.html

Más contenido relacionado

Similar a Mediator Design Pattern Documentation

Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemassauloroos01
 
Questionário sobre padrões de projeto revisão da tentativa
Questionário sobre padrões de projeto  revisão da tentativaQuestionário sobre padrões de projeto  revisão da tentativa
Questionário sobre padrões de projeto revisão da tentativaAluisioSantos4
 
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 ContextoHelio Henrique L. C. Monte-Alto
 
Paradigma de orientação a objetos -
Paradigma de orientação a objetos - Paradigma de orientação a objetos -
Paradigma de orientação a objetos - André Victor
 
Agent based software development
Agent based software developmentAgent based software development
Agent based software developmentAlan Prando
 
Rie s#1 - t#1 - redes de empresas - v00
Rie   s#1 - t#1 - redes de empresas - v00Rie   s#1 - t#1 - redes de empresas - v00
Rie s#1 - t#1 - redes de empresas - v00docjsareias
 
Apresentação ontologia da colaboração
Apresentação ontologia da colaboraçãoApresentação ontologia da colaboração
Apresentação ontologia da colaboraçãoMozart Dornelles Claret
 
Apresentação ontologia da colaboração
Apresentação ontologia da colaboraçãoApresentação ontologia da colaboração
Apresentação ontologia da colaboraçãoMozart Dornelles Claret
 
Global virtual collaboration resumido
Global virtual collaboration resumidoGlobal virtual collaboration resumido
Global virtual collaboration resumidoCentrical
 
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfAndreCosta502039
 
Softwares que Duram: Uma abordagem Arquitetônica
Softwares que Duram: Uma abordagem ArquitetônicaSoftwares que Duram: Uma abordagem Arquitetônica
Softwares que Duram: Uma abordagem ArquitetônicaHugo Seabra
 
Ambientes virtuais conceitos
Ambientes virtuais conceitosAmbientes virtuais conceitos
Ambientes virtuais conceitoscomputacaoufjf
 
Ambientes virtuais conceitos
Ambientes virtuais conceitosAmbientes virtuais conceitos
Ambientes virtuais conceitosDilene Matos
 
Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos finalemcp11
 
CSCW: Trabalhando em grupos
CSCW: Trabalhando em gruposCSCW: Trabalhando em grupos
CSCW: Trabalhando em gruposDarlisson Jesus
 
BlingTech - Padrões de Projeto
BlingTech - Padrões de ProjetoBlingTech - Padrões de Projeto
BlingTech - Padrões de ProjetoFernando Henrique
 
Hangout OOD – princípio da responsabilidade única
Hangout OOD – princípio da responsabilidade únicaHangout OOD – princípio da responsabilidade única
Hangout OOD – princípio da responsabilidade únicaPriscila Mayumi
 

Similar a Mediator Design Pattern Documentation (20)

Worshop w3i ars p fidalgo
Worshop w3i ars p fidalgoWorshop w3i ars p fidalgo
Worshop w3i ars p fidalgo
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
 
MaDKit
MaDKitMaDKit
MaDKit
 
Questionário sobre padrões de projeto revisão da tentativa
Questionário sobre padrões de projeto  revisão da tentativaQuestionário sobre padrões de projeto  revisão da tentativa
Questionário sobre padrões de projeto revisão da tentativa
 
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 -
 
Agent based software development
Agent based software developmentAgent based software development
Agent based software development
 
Rie s#1 - t#1 - redes de empresas - v00
Rie   s#1 - t#1 - redes de empresas - v00Rie   s#1 - t#1 - redes de empresas - v00
Rie s#1 - t#1 - redes de empresas - v00
 
Apresentação ontologia da colaboração
Apresentação ontologia da colaboraçãoApresentação ontologia da colaboração
Apresentação ontologia da colaboração
 
Apresentação ontologia da colaboração
Apresentação ontologia da colaboraçãoApresentação ontologia da colaboração
Apresentação ontologia da colaboração
 
Global virtual collaboration resumido
Global virtual collaboration resumidoGlobal virtual collaboration resumido
Global virtual collaboration resumido
 
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdf
 
Softwares que Duram: Uma abordagem Arquitetônica
Softwares que Duram: Uma abordagem ArquitetônicaSoftwares que Duram: Uma abordagem Arquitetônica
Softwares que Duram: Uma abordagem Arquitetônica
 
Ambientes virtuais conceitos
Ambientes virtuais conceitosAmbientes virtuais conceitos
Ambientes virtuais conceitos
 
Ambientes virtuais conceitos
Ambientes virtuais conceitosAmbientes virtuais conceitos
Ambientes virtuais conceitos
 
Ambientes virtuais conceitos
Ambientes virtuais conceitosAmbientes virtuais conceitos
Ambientes virtuais conceitos
 
Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos final
 
CSCW: Trabalhando em grupos
CSCW: Trabalhando em gruposCSCW: Trabalhando em grupos
CSCW: Trabalhando em grupos
 
BlingTech - Padrões de Projeto
BlingTech - Padrões de ProjetoBlingTech - Padrões de Projeto
BlingTech - Padrões de Projeto
 
Hangout OOD – princípio da responsabilidade única
Hangout OOD – princípio da responsabilidade únicaHangout OOD – princípio da responsabilidade única
Hangout OOD – princípio da responsabilidade única
 

Mediator Design Pattern Documentation

  • 1. Mediator Eder Carlos George Freire Wagner Castro UFRN INSTITUTO METRÓPOLE DIGITAL PÓS-GRADUAÇÃO/RESIDÊNCIA EM ENGENHARIA DE SOFTWARE Natal, outubro de 2013
  • 2. Sumário • INTRODUÇÃO • INTENÇÃO • APLICABILIDADE • ESTRUTURA • VANTAGENS x DESVANTAGENS • PADRÕES RELACIONADOS • IMPLEMENTAÇÃO • REFERÊNCIAS
  • 3. Introdução PADRÕES DE PROJETO GOF CRIACIONAIS COMPORTAMENTAIS ESTRUTURAIS MEDIATOR
  • 4. Intenção • “Definir um objeto que encapsula a forma como um conjunto de objetos interage. O Mediator promove o acoplamento fraco ao evitar que objetos se refiram uns aos outros explicitamente e permitir variar suas interações independentemente” (Gof). • Exemplo: interações entre páginas web de um ecommerce.
  • 5. Intenção • Atua como mediador entre relacionamentos “muitos para muitos”, concentrando a maneira como os objetos interagem. • Exemplo: Inúmeros embarques e desembarques gerenciados por um Centro Controlador de Tráfego Aéreo.
  • 6. Aplicabilidade • Quando um conjunto de objetos se comunica entre si de modo bem definido , mas complexo; • Quando é difícil reusar um objeto porque ele se comunica com muitos outros objetos ; • Quando o comportamento distribuído entre diversas classes deve ser personalizado sem excesso de subclasses; • Exemplos: • Muito útil para programadores Visual Basic (principalmente das versões 5 e 6), pois ele é um atalho para a falta de herança. • Java Message Service (JMS); • Java.util.Timer class scheduleXXX() methods; • Java Concurrency Executor execute () method; • Java.lang.reflect.Method invoke() method;
  • 8. Estrutura • Mediator: • Define uma interface de comunicação com objetos da classe Colleague; • Concrete Mediator: • Faz a implementação do comportamento cooperativo através da coordenação de objetos Colleague; • Responsável por manter e conhecer os objetos da classe Colleague. • Colleague Classes: • Cada classe conhece seu mediador; • Os objetos Colleague se comunicam com seu objeto Mediator, ao invés de se comunicar com outros objetos Colleagues.
  • 9. Vantagens x 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.
  • 10. 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: Os padrões Mediator e Observer são semelhantes, resolvendo o mesmo problema.
  • 12. Referências • Design Patterns: Elements of Reusable Object-Oriented Software • http://imasters.com.br/artigo/21642/dotnet/o-padrao-de- projeto-mediator-na-pratica/ • http://brizeno.wordpress.com/category/padroes-de- projeto/mediator/ • http://www.javacodegeeks.com/2013/08/mediator-design- pattern-in-java-example-tutorial.html