| Previous | Home | Next |
The Mediator Pattern is used to create an object, which is encapsulate the all details and provide the facility of interaction of other object. the relationship is loosely decoupled.
- It is used in Partition of a system in small objects.
- Limited subclasses.
- It provide the Broad committee for Clarify the complex relationship.
- It is Increase the objects reusability's.
- It is used for Simplification to object protocols.
- The Mediator is provide the Multidirectional Relationship between control class and other participating classes.
when a button will be click, the related actions of the program should be enabled or disabled. We are going to design a Mediator class which is include all related classes:
Example
package r4r;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
interface middle {
void linker();
}
class Mediator {
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...");
}
}
class BtnView extends JButton implementsmiddle {
Mediator med;
BtnView(ActionListener al, Mediator m) {
super("View");
addActionListener(al);
med = m;
med.registerView(this);
}
public void setEnabled(boolean b) {
// TODO Auto-generated method stub
}
public void execute() {
med.view();
}
@Override
public void linker() {
// TODO Auto-generated method stub
}
}
class BtnSearch extends JButton implements middle {
Mediator med;
BtnSearch(ActionListener al, Mediator m) {
super("Search");
addActionListener(al);
med = m;
med.registerSearch(this);
}
public void setEnabled(boolean b) {
// TODO Auto-generated method stub
}
public void execute() {
med.search();
}
@Override
public void linker() {
// TODO Auto-generated method stub
}
}
class BtnBook extends JButton implementsmiddle {
Mediator med;
BtnBook (ActionListener al, Mediator m) {
super("Book");
addActionListener(al);
med = m;
med.registerBook(this);
}
public void setEnabled(boolean b) {
// TODO Auto-generated method stub
}
public void execute() {
med.book();
}
@Override
public void linker() {
// TODO Auto-generated method stub
}
}
class LblDisplay extends JLabel{
Mediator md;
LblDisplay (Mediator m) {
super("Just start...");
md = m;
md.registerDisplay(this);
setFont(new Font("Arial",Font.BOLD,24));
}
public void setText(String string) {
// TODO Auto-generated method stub
}
}
public class mediatortest extends
JFrame implements ActionListener {
Mediator med = new Mediator();
mediatortest() {
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 actionPerformed1(ActionEvent ae) {
middle mid = (middle)ae.getSource();
mid.linker();
}
public static void main(String[] args)throws Exception {
new mediatortest();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
| Previous | Home | Next |