padrão de projeto mediator
DESCRIPTION
Estudo sobre o Padrão de Projeto MediatorTRANSCRIPT
MediatorEder Carlos
George Freire
Wagner Castro
UFRNINSTITUTO METRÓPOLE DIGITALPÓ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 conjuntode objetos interage. O Mediator promove o acoplamentofraco ao evitar que objetos se refiram uns aos outrosexplicitamente e permitir variar suas interaçõesindependentemente” (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