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 |