fbpx
Wikipedia

Mediator (patrón de diseño)

El patrón mediador define un objeto que encapsula cómo un conjunto de objetos interactúan. Este patrón de diseño está considerado como un patrón de comportamiento debido al hecho de que puede alterar el comportamiento del programa en ejecución.

Habitualmente un programa está compuesto de un número de clases (muchas veces elevado). La lógica y computación es distribuida entre esas clases. Sin embargo, cuantas más clases son desarrolladas en un programa, especialmente durante mantenimiento y/o refactorización, el problema de comunicación entre estas clases quizás llegue a ser más complejo. Esto hace que el programa sea más difícil de leer y mantener. Además, puede llegar a ser difícil cambiar el programa, ya que cualquier cambio podría afectar código en muchas otras clases.

Con el patrón mediador, la comunicación entre objetos es encapsulada con un objeto mediador. Los objetos no se comunican de forma directa entre ellos, en lugar de ello se comunican mediante el mediador. Esto reduce las dependencias entre los objetos en comunicación, reduciendo entonces la Dependencia de código.

Definición

La esencia del Patrón Mediador es "Definir un objeto que encapsula cómo un conjunto de objetos interactúan. El mediador busca reducir la dependencia evitando que los objetos se relacionen entre ellos de forma explícita, y permitiendo variar cualquier interacción independientemente".[1]

Ejemplo

  •   Wikilibros en inglés alberga un libro o manual sobre Computer Science Design Patterns/Mediator.
import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; //Interfaz Amigo interface Command { void execute(); } //Mediador Abstracto interface IMediator { void book(); void view(); void search(); void registerView(BtnView v); void registerSearch(BtnSearch s); void registerBook(BtnBook b); void registerDisplay(LblDisplay d); } //Mediador Concreto class Mediator implements IMediator { BtnView btnView; BtnSearch btnSearch; BtnBook btnBook; LblDisplay show; //.... void registerView(BtnView v) { btnView = v; } void registerSearch(BtnSearch s) { btnSearch = s; } void registerBook(BtnBook b) { btnBook = b; } void registerDisplay(LblDisplay d) { show = d; } void book() { btnBook.setEnabled(false); btnView.setEnabled(true); btnSearch.setEnabled(true); show.setText("booking..."); } void view() { btnView.setEnabled(false); btnSearch.setEnabled(true); btnBook.setEnabled(true); show.setText("viewing..."); } void search() { btnSearch.setEnabled(false); btnView.setEnabled(true); btnBook.setEnabled(true); show.setText("searching..."); } } //Un amigo concreto class BtnView extends JButton implements Command { IMediator med; BtnView(ActionListener al, IMediator m) { super("View"); addActionListener(al); med = m; med.registerView(this); } public void execute() { med.view(); } } //Un amigo concreto class BtnSearch extends JButton implements Command { IMediator med; BtnSearch(ActionListener al, IMediator m) { super("Search"); addActionListener(al); med = m; med.registerSearch(this); } public void execute() { med.search(); } } //Un amigo concreto class BtnBook extends JButton implements Command { IMediator med; BtnBook(ActionListener al, IMediator m) { super("Book"); addActionListener(al); med = m; med.registerBook(this); } public void execute() { med.book(); } } class LblDisplay extends JLabel { IMediator med; LblDisplay(IMediator m) { super("Just start..."); med = m; med.registerDisplay(this); setFont(new Font("Arial", Font.BOLD, 24)); } } class MediatorDemo extends JFrame implements ActionListener { IMediator med = new Mediator(); MediatorDemo() { JPanel p = new JPanel(); p.add(new BtnView(this, med)); p.add(new BtnBook(this, med)); p.add(new BtnSearch(this, med)); getContentPane().add(new LblDisplay(med), "North"); getContentPane().add(p, "South"); setSize(400, 200); setVisible(true); } public void actionPerformed(ActionEvent ae) { Command comd = (Command) ae.getSource(); comd.execute(); } public static void main(String[] args) { new MediatorDemo(); } } 

Participantes

Mediador - define la interfaz para la comunicación entre objetos amigos

MediadorConcreto - implementa la interfaz Mediador y coordina la comunicación entre objetos amigos. Es consciente de todos los amigos y su propósito en lo que concierne a la comunicación entre ellos.

AmigoConcreto - se comunica con otros amigos a través de su Mediador

Véase también

Referencias

  1. Gang Of Four

Bibliografía

  • Design Patterns. Elements of Reusable Object-Oriented Software - Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - Addison Wesley (GoF- Gang of Four)

Enlaces externos

    •   Datos: Q1546118
    •   Multimedia: Mediator pattern

    mediator, patrón, diseño, patrón, mediador, define, objeto, encapsula, cómo, conjunto, objetos, interactúan, este, patrón, diseño, está, considerado, como, patrón, comportamiento, debido, hecho, puede, alterar, comportamiento, programa, ejecución, habitualment. El patron mediador define un objeto que encapsula como un conjunto de objetos interactuan Este patron de diseno esta considerado como un patron de comportamiento debido al hecho de que puede alterar el comportamiento del programa en ejecucion Habitualmente un programa esta compuesto de un numero de clases muchas veces elevado La logica y computacion es distribuida entre esas clases Sin embargo cuantas mas clases son desarrolladas en un programa especialmente durante mantenimiento y o refactorizacion el problema de comunicacion entre estas clases quizas llegue a ser mas complejo Esto hace que el programa sea mas dificil de leer y mantener Ademas puede llegar a ser dificil cambiar el programa ya que cualquier cambio podria afectar codigo en muchas otras clases Con el patron mediador la comunicacion entre objetos es encapsulada con un objeto mediador Los objetos no se comunican de forma directa entre ellos en lugar de ello se comunican mediante el mediador Esto reduce las dependencias entre los objetos en comunicacion reduciendo entonces la Dependencia de codigo Indice 1 Definicion 2 Ejemplo 3 Participantes 4 Vease tambien 5 Referencias 6 Bibliografia 7 Enlaces externosDefinicion EditarLa esencia del Patron Mediador es Definir un objeto que encapsula como un conjunto de objetos interactuan El mediador busca reducir la dependencia evitando que los objetos se relacionen entre ellos de forma explicita y permitiendo variar cualquier interaccion independientemente 1 Ejemplo Editar Wikilibros en ingles alberga un libro o manual sobre Computer Science Design Patterns Mediator import java awt Font import java awt event ActionEvent import java awt event ActionListener import javax swing JButton import javax swing JFrame import javax swing JLabel import javax swing JPanel Interfaz Amigo interface Command void execute Mediador Abstracto interface IMediator void book void view void search void registerView BtnView v void registerSearch BtnSearch s void registerBook BtnBook b void registerDisplay LblDisplay d Mediador Concreto class Mediator implements IMediator BtnView btnView BtnSearch btnSearch BtnBook btnBook LblDisplay show void registerView BtnView v btnView v void registerSearch BtnSearch s btnSearch s void registerBook BtnBook b btnBook b void registerDisplay LblDisplay d show d void book btnBook setEnabled false btnView setEnabled true btnSearch setEnabled true show setText booking void view btnView setEnabled false btnSearch setEnabled true btnBook setEnabled true show setText viewing void search btnSearch setEnabled false btnView setEnabled true btnBook setEnabled true show setText searching Un amigo concreto class BtnView extends JButton implements Command IMediator med BtnView ActionListener al IMediator m super View addActionListener al med m med registerView this public void execute med view Un amigo concreto class BtnSearch extends JButton implements Command IMediator med BtnSearch ActionListener al IMediator m super Search addActionListener al med m med registerSearch this public void execute med search Un amigo concreto class BtnBook extends JButton implements Command IMediator med BtnBook ActionListener al IMediator m super Book addActionListener al med m med registerBook this public void execute med book class LblDisplay extends JLabel IMediator med LblDisplay IMediator m super Just start med m med registerDisplay this setFont new Font Arial Font BOLD 24 class MediatorDemo extends JFrame implements ActionListener IMediator med new Mediator MediatorDemo JPanel p new JPanel p add new BtnView this med p add new BtnBook this med p add new BtnSearch this med getContentPane add new LblDisplay med North getContentPane add p South setSize 400 200 setVisible true public void actionPerformed ActionEvent ae Command comd Command ae getSource comd execute public static void main String args new MediatorDemo Participantes EditarMediador define la interfaz para la comunicacion entre objetos amigosMediadorConcreto implementa la interfaz Mediador y coordina la comunicacion entre objetos amigos Es consciente de todos los amigos y su proposito en lo que concierne a la comunicacion entre ellos AmigoConcreto se comunica con otros amigos a traves de su MediadorVease tambien EditarDesign Patterns Patrones de disenoReferencias Editar Gang Of FourBibliografia EditarDesign Patterns Elements of Reusable Object Oriented Software Erich Gamma Richard Helm Ralph Johnson John Vlissides Addison Wesley GoF Gang of Four Enlaces externos EditarMediator Design Pattern Datos Q1546118 Multimedia Mediator patternObtenido de https es wikipedia org w index php title Mediator patron de diseno amp oldid 128098077, wikipedia, wiki, leyendo, leer, libro, biblioteca,

    español

    , española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos