java学习

java学习

 

设计模式之中介者模式

Java深入到一定程度,就不可避免的碰到设计模式这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的 中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Mediator(中介者模式)模式是比较常用的一个模式.
 

  Mediator中介者模式,当多个对象彼此间都有联系的时候,我们就可以应用Mediator将对象间的多对多关系转换为一对多的关系,这样做,可以使各个对象间的耦合松散。统一管理对象间的交互。但也可能使得Mediator对象成为一个系统中的庞然大物,难以维护
   使用场景:集中负责维护对象模型的关系完整性 以及需要 封装对象间交互方式的时候.
   其实MVC中的controller就是一种Mediator,是UI层 和后端应用sevice层间的中介者。中介者将交互的复杂性变为中介者的复杂性

例子如下:
业务类的接口:
public interface Colleague {
void action();
}
业务类的2个实现类:
public class ColleagueA implements Colleague{

    @Override
    public void action() {
         System.out.println("普通员工努力工作aaaaaaa");        
    }
}
public class ColleagueB implements Colleague{

    @Override
    public void action() {
         System.out.println("前台注意了bbbb");        
    }
}
中介者接口:
public interface Mediator {
void notice(String content);
}

public class ConcreteMediator implements Mediator{
     private ColleagueA ca;
        
        private ColleagueB cb;
        
        public ConcreteMediator() {
            ca = new ColleagueA();
            cb = new ColleagueB();
        }
        
        public void notice(String content) {
            if (content.equals("boss")) {
                //老板来了, 通知员工A
                ca.action();
            }
            if (content.equals("client")) {
                //客户来了, 通知前台B
                cb.action();
            }
        }

}

测试类:
public class Test {
     public static void main(String[] args) {
            Mediator med = new ConcreteMediator();
            //老板来了
            med.notice("boss");
            
            //客户来了
            med.notice("client");
        }

}
当客户端传过来的字符串不一样时,中介者类根据字符串实现不同的业务类的对象,处理数据。

posted on 2013-05-27 17:02 杨军威 阅读(208) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜