SlideShare una empresa de Scribd logo
Patron de comportamiento Mediator
 Define unobjetoque encapsulalamaneraenque interactúanunconjuntode objetos
entre ellos,ademáseste patronpuedeserutilizadocuando:
o La comunicaciónentre loscnjuntosde objetosestádefinidoyescomplejo
o Existendemasiadasrelacionesyse necesitaunpuntocomúnde control o
cumunicación.
Comoun ejemploconsidereoslaimplementaciónde unacajade dialogoenunainterfazde
usuariografica.Una caja de dialogo usauna ventanapara presentarcoleccionesde widgets
talesconobotones, menusyentracampos,como se presentarenlagrafica:
publicinterface ISalonDeChat_MEDIATOR{
publicabstract voidregistrar(UsuarioDeChat_COLLEGUE_CONCRETEparticipante);
publicabstract voidenviar(Stringde,Stringa,Stringmsg);
}
publicclassSalonDeChat_MEDIATOR_CONCRETEimplementsISalonDeChat_MEDIATOR{
private Map<String,UsuarioDeChat_COLLEGUE_CONCRETE>participantes=new HashMap<String,
UsuarioDeChat_COLLEGUE_CONCRETE>();
@Override
publicvoidregistrar(UsuarioDeChat_COLLEGUE_CONCRETEparticipante) {
participantes.put(participante.getNombre(),participante);
}
@Override
publicvoidenviar(Stringde,Stringa,Stringmsg) {
if (participantes.containsKey(de) &&participantes.containsKey(a)) {
UsuarioDeChat_COLLEGUE_CONCRETEu = participantes.get(a);
u.recibir(de,msg);
}
else
{
System.out.println("Usuarioinexistente");
}
}
}
publicinterface IUsuarioChat_COLLEGUE{
publicvoidrecibir(Stringde,Stringmsg);
publicvoidenviar(Stringa,Stringmsg);
}
publicclassUsuarioDeChat_COLLEGUE_CONCRETE implements IUsuarioChat_COLLEGUE{
private Stringnombre;
private SalonDeChat_MEDIATOR_CONCRETEsalon;
publicUsuarioDeChat_COLLEGUE_CONCRETE(SalonDeChat_MEDIATOR_CONCRETEsalonDeChat){
salon= salonDeChat;
}
@Override
publicvoidrecibir(Stringde,Stringmsg) {
Strings = "el usuario" + de + " te dice :" + msg;
System.out.println(nombre+": "+s);
}
@Override
publicvoidenviar(Stringa,Stringmsg) {
salon.enviar(nombre,a,msg);
}
publicStringgetNombre() {
returnnombre;
}
publicvoidsetNombre(Stringnombre) {
this.nombre =nombre;
}
}
Cliente
publicclassTestMediatorMain{
publicstaticvoidmain(String[] args) {
SalonDeChat_MEDIATOR_CONCRETEsala= new SalonDeChat_MEDIATOR_CONCRETE();
UsuarioDeChat_COLLEGUE_CONCRETEusuario1= new UsuarioDeChat_COLLEGUE_CONCRETE(sala);
usuario1.setNombre("Kevin");
sala.registrar(usuario1);
UsuarioDeChat_COLLEGUE_CONCRETEusuario2= new UsuarioDeChat_COLLEGUE_CONCRETE(sala);
usuario2.setNombre("Jose");
sala.registrar(usuario2);
UsuarioDeChat_COLLEGUE_CONCRETEusuario3= new UsuarioDeChat_COLLEGUE_CONCRETE(sala);
usuario3.setNombre("Pablo");
sala.registrar(usuario3);
UsuarioDeChat_COLLEGUE_CONCRETEusuario4= new UsuarioDeChat_COLLEGUE_CONCRETE(sala);
usuario4.setNombre("Adrian");
sala.registrar(usuario4);
usuario1.enviar("Jose","ntHolacomoestasJose ?");
usuario2.enviar("Kevin","ntTodobien,ytuKevin?");
usuario3.enviar("Adrian","ntEstantodosaqui?");
usuario4.enviar("Jose","ntAtiendanaclase");
}
}

Más contenido relacionado

Similar a Patron de comportamiento mediator

Guia trabajo visual basic (parte I)
Guia trabajo   visual basic (parte I)Guia trabajo   visual basic (parte I)
Guia trabajo visual basic (parte I)ColegioUpb
 
Visual basic 6.0
Visual basic 6.0Visual basic 6.0
Visual basic 6.0
JesusGregorioSotoNie
 
Patron de Desarrollo Modelo Vista Controlador
Patron de Desarrollo Modelo Vista ControladorPatron de Desarrollo Modelo Vista Controlador
Patron de Desarrollo Modelo Vista Controlador
Henry Vargas
 
base de datos
base de datos  base de datos
base de datos
joseph1016
 
base de datos
base de datosbase de datos
base de datos
adele2877
 
Qué es visual basic
Qué es visual basicQué es visual basic
Qué es visual basic
Dulmar Torrado
 
Herramientas y Desarrollo de Software
Herramientas y Desarrollo de SoftwareHerramientas y Desarrollo de Software
Herramientas y Desarrollo de Software
Cristina1139
 
Design patterns
Design patternsDesign patterns
Tarea vb
Tarea vbTarea vb
Java construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awtJava construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awt
jbersosa
 
Patrones de-diseño-mañana
Patrones de-diseño-mañanaPatrones de-diseño-mañana
Patrones de-diseño-mañana
ale abad aguilar
 
Herramientas de control en Visual Studio
Herramientas de control en Visual StudioHerramientas de control en Visual Studio
Herramientas de control en Visual Studio
myriam aguilar
 
Kairubys rodriguez
Kairubys rodriguezKairubys rodriguez
Kairubys rodriguez
Eduardo Hernandez
 
android3Introduccion
android3Introduccionandroid3Introduccion
android3Introduccionoscar7525
 
Guia de informatica segundo periodo 2019
Guia de informatica segundo periodo 2019Guia de informatica segundo periodo 2019
Guia de informatica segundo periodo 2019
ZahylyMontalvo
 
TI como canal y pilar de la adopción de Lean
TI como canal y pilar de la adopción de LeanTI como canal y pilar de la adopción de Lean
TI como canal y pilar de la adopción de Lean
Juan José Vázquez Rubio
 
TI como canal y pilar de la adopción de Lean
TI como canal y pilar de la adopción de LeanTI como canal y pilar de la adopción de Lean
TI como canal y pilar de la adopción de Lean
Juan José Vázquez Rubio
 

Similar a Patron de comportamiento mediator (20)

Guia trabajo visual basic (parte I)
Guia trabajo   visual basic (parte I)Guia trabajo   visual basic (parte I)
Guia trabajo visual basic (parte I)
 
Visual basic 6.0
Visual basic 6.0Visual basic 6.0
Visual basic 6.0
 
Patron de Desarrollo Modelo Vista Controlador
Patron de Desarrollo Modelo Vista ControladorPatron de Desarrollo Modelo Vista Controlador
Patron de Desarrollo Modelo Vista Controlador
 
base de datos
base de datos  base de datos
base de datos
 
base de datos
base de datosbase de datos
base de datos
 
Qué es visual basic
Qué es visual basicQué es visual basic
Qué es visual basic
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Herramientas y Desarrollo de Software
Herramientas y Desarrollo de SoftwareHerramientas y Desarrollo de Software
Herramientas y Desarrollo de Software
 
Visual basic 6
Visual basic 6Visual basic 6
Visual basic 6
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Tarea vb
Tarea vbTarea vb
Tarea vb
 
Día 1 programacion
Día 1 programacionDía 1 programacion
Día 1 programacion
 
Java construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awtJava construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awt
 
Patrones de-diseño-mañana
Patrones de-diseño-mañanaPatrones de-diseño-mañana
Patrones de-diseño-mañana
 
Herramientas de control en Visual Studio
Herramientas de control en Visual StudioHerramientas de control en Visual Studio
Herramientas de control en Visual Studio
 
Kairubys rodriguez
Kairubys rodriguezKairubys rodriguez
Kairubys rodriguez
 
android3Introduccion
android3Introduccionandroid3Introduccion
android3Introduccion
 
Guia de informatica segundo periodo 2019
Guia de informatica segundo periodo 2019Guia de informatica segundo periodo 2019
Guia de informatica segundo periodo 2019
 
TI como canal y pilar de la adopción de Lean
TI como canal y pilar de la adopción de LeanTI como canal y pilar de la adopción de Lean
TI como canal y pilar de la adopción de Lean
 
TI como canal y pilar de la adopción de Lean
TI como canal y pilar de la adopción de LeanTI como canal y pilar de la adopción de Lean
TI como canal y pilar de la adopción de Lean
 

Último

CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
Arquitectura de Sistema de Reservaciones
Arquitectura de Sistema de ReservacionesArquitectura de Sistema de Reservaciones
Arquitectura de Sistema de Reservaciones
AlanL15
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
KatiuskaDominguez2
 
MODULOS INTEGRADOS.docx.....................................
MODULOS INTEGRADOS.docx.....................................MODULOS INTEGRADOS.docx.....................................
MODULOS INTEGRADOS.docx.....................................
Yisel56
 

Último (7)

CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
Arquitectura de Sistema de Reservaciones
Arquitectura de Sistema de ReservacionesArquitectura de Sistema de Reservaciones
Arquitectura de Sistema de Reservaciones
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
 
MODULOS INTEGRADOS.docx.....................................
MODULOS INTEGRADOS.docx.....................................MODULOS INTEGRADOS.docx.....................................
MODULOS INTEGRADOS.docx.....................................
 

Patron de comportamiento mediator

  • 1. Patron de comportamiento Mediator  Define unobjetoque encapsulalamaneraenque interactúanunconjuntode objetos entre ellos,ademáseste patronpuedeserutilizadocuando: o La comunicaciónentre loscnjuntosde objetosestádefinidoyescomplejo o Existendemasiadasrelacionesyse necesitaunpuntocomúnde control o cumunicación. Comoun ejemploconsidereoslaimplementaciónde unacajade dialogoenunainterfazde usuariografica.Una caja de dialogo usauna ventanapara presentarcoleccionesde widgets talesconobotones, menusyentracampos,como se presentarenlagrafica:
  • 2.
  • 3. publicinterface ISalonDeChat_MEDIATOR{ publicabstract voidregistrar(UsuarioDeChat_COLLEGUE_CONCRETEparticipante); publicabstract voidenviar(Stringde,Stringa,Stringmsg); } publicclassSalonDeChat_MEDIATOR_CONCRETEimplementsISalonDeChat_MEDIATOR{ private Map<String,UsuarioDeChat_COLLEGUE_CONCRETE>participantes=new HashMap<String, UsuarioDeChat_COLLEGUE_CONCRETE>(); @Override publicvoidregistrar(UsuarioDeChat_COLLEGUE_CONCRETEparticipante) { participantes.put(participante.getNombre(),participante); } @Override publicvoidenviar(Stringde,Stringa,Stringmsg) { if (participantes.containsKey(de) &&participantes.containsKey(a)) { UsuarioDeChat_COLLEGUE_CONCRETEu = participantes.get(a); u.recibir(de,msg); } else { System.out.println("Usuarioinexistente"); } } } publicinterface IUsuarioChat_COLLEGUE{ publicvoidrecibir(Stringde,Stringmsg); publicvoidenviar(Stringa,Stringmsg); } publicclassUsuarioDeChat_COLLEGUE_CONCRETE implements IUsuarioChat_COLLEGUE{ private Stringnombre; private SalonDeChat_MEDIATOR_CONCRETEsalon; publicUsuarioDeChat_COLLEGUE_CONCRETE(SalonDeChat_MEDIATOR_CONCRETEsalonDeChat){ salon= salonDeChat; } @Override publicvoidrecibir(Stringde,Stringmsg) {
  • 4. Strings = "el usuario" + de + " te dice :" + msg; System.out.println(nombre+": "+s); } @Override publicvoidenviar(Stringa,Stringmsg) { salon.enviar(nombre,a,msg); } publicStringgetNombre() { returnnombre; } publicvoidsetNombre(Stringnombre) { this.nombre =nombre; } } Cliente publicclassTestMediatorMain{ publicstaticvoidmain(String[] args) { SalonDeChat_MEDIATOR_CONCRETEsala= new SalonDeChat_MEDIATOR_CONCRETE(); UsuarioDeChat_COLLEGUE_CONCRETEusuario1= new UsuarioDeChat_COLLEGUE_CONCRETE(sala); usuario1.setNombre("Kevin"); sala.registrar(usuario1); UsuarioDeChat_COLLEGUE_CONCRETEusuario2= new UsuarioDeChat_COLLEGUE_CONCRETE(sala); usuario2.setNombre("Jose"); sala.registrar(usuario2); UsuarioDeChat_COLLEGUE_CONCRETEusuario3= new UsuarioDeChat_COLLEGUE_CONCRETE(sala); usuario3.setNombre("Pablo"); sala.registrar(usuario3); UsuarioDeChat_COLLEGUE_CONCRETEusuario4= new UsuarioDeChat_COLLEGUE_CONCRETE(sala); usuario4.setNombre("Adrian"); sala.registrar(usuario4); usuario1.enviar("Jose","ntHolacomoestasJose ?"); usuario2.enviar("Kevin","ntTodobien,ytuKevin?"); usuario3.enviar("Adrian","ntEstantodosaqui?"); usuario4.enviar("Jose","ntAtiendanaclase"); } }