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 Patrón 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
 
Patron de Desarrollo Modelo Vista Controlador
Patron de Desarrollo Modelo Vista ControladorPatron de Desarrollo Modelo Vista Controlador
Patron de Desarrollo Modelo Vista ControladorHenry Vargas
 
base de datos
base de datos  base de datos
base de datos joseph1016
 
base de datos
base de datosbase de datos
base de datosadele2877
 
Herramientas y Desarrollo de Software
Herramientas y Desarrollo de SoftwareHerramientas y Desarrollo de Software
Herramientas y Desarrollo de SoftwareCristina1139
 
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 awtjbersosa
 
Patrones de-diseño-mañana
Patrones de-diseño-mañanaPatrones de-diseño-mañana
Patrones de-diseño-mañanaale abad aguilar
 
Herramientas de control en Visual Studio
Herramientas de control en Visual StudioHerramientas de control en Visual Studio
Herramientas de control en Visual Studiomyriam aguilar
 
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 2019ZahylyMontalvo
 
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 LeanJuan 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 LeanJuan José Vázquez Rubio
 

Similar a Patrón 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

Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equiponicromante2000
 
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORDRobertSotilLujn
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesjuanorejuela499
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...cuentauniversidad34
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsFederico Toledo
 
Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)edisonquispecalderon
 
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 SalleEcaresoft Inc.
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareoscartorres960914
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxlasocharfuelan123
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfjuanjosebarreiro704
 
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.CarmenFlores88207
 

Último (11)

Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
 
Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)
 
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
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
 

Patrón 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"); } }