SlideShare une entreprise Scribd logo
1  sur  12
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

Contenu connexe

Tendances

Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Messias Batista
 
Servidores Web
Servidores Web Servidores Web
Servidores Web bastosluis
 
Jpa – Java Persistence Api
Jpa – Java Persistence ApiJpa – Java Persistence Api
Jpa – Java Persistence Apiguestf54162
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetossoncino
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
Modelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídosModelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídosPortal_do_Estudante_SD
 
게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴MinGeun Park
 
Empreendedorismo Rural
Empreendedorismo RuralEmpreendedorismo Rural
Empreendedorismo Ruralequipeagroplus
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2tamtam180
 
Segurança no Armazenamento: Backups
Segurança no Armazenamento: BackupsSegurança no Armazenamento: Backups
Segurança no Armazenamento: Backupselliando dias
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linuxPeslPinguim
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)YEONG-CHEON YOU
 
Compreendendo a redundância de camada 3
Compreendendo a redundância de camada 3Compreendendo a redundância de camada 3
Compreendendo a redundância de camada 3Vitor Albuquerque
 
Cartilhas uca.6-configuracao-do-ponto-de-acesso
Cartilhas uca.6-configuracao-do-ponto-de-acessoCartilhas uca.6-configuracao-do-ponto-de-acesso
Cartilhas uca.6-configuracao-do-ponto-de-acessoismaelfurtado
 

Tendances (20)

Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
 
Servidores Web
Servidores Web Servidores Web
Servidores Web
 
Jpa – Java Persistence Api
Jpa – Java Persistence ApiJpa – Java Persistence Api
Jpa – Java Persistence Api
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
Modelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídosModelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídos
 
행동 트리
행동 트리행동 트리
행동 트리
 
게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴
 
Diagramas de pacotes
Diagramas de pacotesDiagramas de pacotes
Diagramas de pacotes
 
Empreendedorismo Rural
Empreendedorismo RuralEmpreendedorismo Rural
Empreendedorismo Rural
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
 
Segurança no Armazenamento: Backups
Segurança no Armazenamento: BackupsSegurança no Armazenamento: Backups
Segurança no Armazenamento: Backups
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
Banco de Dados
Banco de DadosBanco de Dados
Banco de Dados
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linux
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
Compreendendo a redundância de camada 3
Compreendendo a redundância de camada 3Compreendendo a redundância de camada 3
Compreendendo a redundância de camada 3
 
Cartilhas uca.6-configuracao-do-ponto-de-acesso
Cartilhas uca.6-configuracao-do-ponto-de-acessoCartilhas uca.6-configuracao-do-ponto-de-acesso
Cartilhas uca.6-configuracao-do-ponto-de-acesso
 

Similaire à Mediator Design Pattern Documentation

Seminario sma,abms e netlogo
Seminario   sma,abms e netlogoSeminario   sma,abms e netlogo
Seminario sma,abms e netlogoDiogo Winck
 
Organizações Virtuais
Organizações VirtuaisOrganizações Virtuais
Organizações VirtuaisAlan John
 
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
 
TDD Projeto e Estrategias
TDD Projeto e EstrategiasTDD Projeto e Estrategias
TDD Projeto e EstrategiasEduardo Mendes
 
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
 

Similaire à Mediator Design Pattern Documentation (20)

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
 
Organizações Virtuais
Organizações VirtuaisOrganizações Virtuais
Organizações Virtuais
 
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
 
TDD Projeto e Estrategias
TDD Projeto e EstrategiasTDD Projeto e Estrategias
TDD Projeto e Estrategias
 
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
 

Plus de Eder Nogueira

DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII Eder Nogueira
 
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YIIDETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YIIEder Nogueira
 
Títulos de Renda Fixa
Títulos de Renda FixaTítulos de Renda Fixa
Títulos de Renda FixaEder Nogueira
 
HIstóricos e Causas da Inflação
HIstóricos e Causas da InflaçãoHIstóricos e Causas da Inflação
HIstóricos e Causas da InflaçãoEder Nogueira
 
Kant e a Ética do Dever
Kant e a Ética do DeverKant e a Ética do Dever
Kant e a Ética do DeverEder Nogueira
 
Projeto Político Pedagógico - Parte I - Versão FULL
Projeto Político Pedagógico - Parte I - Versão FULLProjeto Político Pedagógico - Parte I - Versão FULL
Projeto Político Pedagógico - Parte I - Versão FULLEder Nogueira
 
PROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLAR
PROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLARPROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLAR
PROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLAREder Nogueira
 
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTES
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTESATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTES
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTESEder Nogueira
 
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAIS
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAISATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAIS
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAISEder Nogueira
 
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOS
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOSAPRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOS
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOSEder Nogueira
 
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLA
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLAAPRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLA
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLAEder Nogueira
 
CERTIFICAÇÃO DE QUALIDADE: ISO
CERTIFICAÇÃO DE QUALIDADE: ISOCERTIFICAÇÃO DE QUALIDADE: ISO
CERTIFICAÇÃO DE QUALIDADE: ISOEder Nogueira
 
Ferramentas Colaborativas
Ferramentas ColaborativasFerramentas Colaborativas
Ferramentas ColaborativasEder Nogueira
 
Tutorial JBoss Seam
Tutorial JBoss Seam Tutorial JBoss Seam
Tutorial JBoss Seam Eder Nogueira
 
UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...
UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...
UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...Eder Nogueira
 
JAVA MEDIA FRAMEWORK
JAVA MEDIA FRAMEWORKJAVA MEDIA FRAMEWORK
JAVA MEDIA FRAMEWORKEder Nogueira
 
PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...
PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...
PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...Eder Nogueira
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão GeralEder Nogueira
 
Abordagem humanística da administração e decorrências da teoria das relações ...
Abordagem humanística da administração e decorrências da teoria das relações ...Abordagem humanística da administração e decorrências da teoria das relações ...
Abordagem humanística da administração e decorrências da teoria das relações ...Eder Nogueira
 

Plus de Eder Nogueira (20)

COBIT 5
COBIT 5 COBIT 5
COBIT 5
 
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
 
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YIIDETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
 
Títulos de Renda Fixa
Títulos de Renda FixaTítulos de Renda Fixa
Títulos de Renda Fixa
 
HIstóricos e Causas da Inflação
HIstóricos e Causas da InflaçãoHIstóricos e Causas da Inflação
HIstóricos e Causas da Inflação
 
Kant e a Ética do Dever
Kant e a Ética do DeverKant e a Ética do Dever
Kant e a Ética do Dever
 
Projeto Político Pedagógico - Parte I - Versão FULL
Projeto Político Pedagógico - Parte I - Versão FULLProjeto Político Pedagógico - Parte I - Versão FULL
Projeto Político Pedagógico - Parte I - Versão FULL
 
PROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLAR
PROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLARPROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLAR
PROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLAR
 
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTES
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTESATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTES
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTES
 
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAIS
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAISATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAIS
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAIS
 
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOS
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOSAPRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOS
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOS
 
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLA
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLAAPRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLA
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLA
 
CERTIFICAÇÃO DE QUALIDADE: ISO
CERTIFICAÇÃO DE QUALIDADE: ISOCERTIFICAÇÃO DE QUALIDADE: ISO
CERTIFICAÇÃO DE QUALIDADE: ISO
 
Ferramentas Colaborativas
Ferramentas ColaborativasFerramentas Colaborativas
Ferramentas Colaborativas
 
Tutorial JBoss Seam
Tutorial JBoss Seam Tutorial JBoss Seam
Tutorial JBoss Seam
 
UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...
UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...
UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...
 
JAVA MEDIA FRAMEWORK
JAVA MEDIA FRAMEWORKJAVA MEDIA FRAMEWORK
JAVA MEDIA FRAMEWORK
 
PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...
PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...
PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão Geral
 
Abordagem humanística da administração e decorrências da teoria das relações ...
Abordagem humanística da administração e decorrências da teoria das relações ...Abordagem humanística da administração e decorrências da teoria das relações ...
Abordagem humanística da administração e decorrências da teoria das relações ...
 

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