Define um objeto que encapsula a forma como um conjunto de objetos interage. O Mediator promove o acoplamento fraco ao evitar que os objetos se refiram explicitamente uns aos outros, permitindo que você varie suas interações independentemente.
4. Intenção
■ Definir um objeto para encapsular a
forma como um conjunto de objetos
interage;
■ Promover baixo acoplamento;
■ Não permitir que objetos se referenciem
entre si de maneira explícita.
7. Motivação
■ Diminuir o alto acoplamento causado pela distribuição
de comportamento entre vários objetos.
■ Essa distribuição pode resultar em muitas conexões, o
que leva um objeto ter conhecimento sobre vários
outros.
8. Aplicabilidade
■ O padrão mediator deve ser usado quando:
● Um conjunto de objetos se comunicar de forma
complexa, interdependências desestruturadas e de
difícil entendimento;
● A reutilização de um objeto se torna difícil por ele
referenciar e comunicar com muitos outros;
● Customizar ou adaptar um comportamento que está
distribuído entre várias classes sem a necessidade
excessiva de especialização em subclasses.
11. Participantes
■ Mediator:
● Define uma interface de comunicação com objetos de
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.
12. Participantes
■ Colleague Classes:
● Cada classe Colleague conhece seu Mediator;
● Os objetos Colleague se comunicam com seu objeto
Mediator, ao invés de se comunicar com outros
objetos Colleagues.
13. Colaborações
■ Os objetos Colleagues, uma vez que não se
conhecem, enviam e recebem solicitações do
Mediator;
■ O Mediator conhece cada um dos participantes e
direciona as solicitações para os objetos
apropriados;
■ A política de comunicação é determinada pelo
Mediator (Implementação Concreta do Mediator).
14. Consequências
■ Vantagens
● Limita extensão por herança (para estender ou alterar o
comportamento, basta criar uma subclasse do Mediator);
● Baixo acoplamento entre Colleagues;
● Politica de comunicações fica centralizada no Mediator e
pode ser alterada sem mexer nos Colleagues;
● Eliminação de relacionamentos muitos-para-muitos;
15. Consequências
■ Desvantagens
● A centralização em exagero pode ser uma fonte de
gargalos de desempenho e risco para o sistema em caso
de falhas;
● O Mediator pode se tornar muito complexo.