Spring设计模式(委派模式)
Spring设计模式(委派模式)
博客用于学习记录:方便以后回顾
委派模式 : 不关心过程,只关心结果
代理模式:不关心结果,只关心过程
观察者模式:关心的是过程中状态的改变,观察者和被观察者没有任务分发关系
学习来源 : 咕泡学院
模式的定义:
委派模式定义
委派模式的原理为类B和类A是两个互相没有任何关系的类,B具有和A一模一样的方法和属性,并且调用B中的方法、属性就是调用A中同名的方法和属性。B好像就是一个受A授权委托的中介。第三方的代码不需要知道A的存在,也不需要和A发生直接的联系,通过B就可以直接使用A的功能,这样既能够使用到A的各种功能,又能够很好的将A保护起来,一举两得
模式的结构图 :
模式包含角色 :
**抽象任务:**委托人和被委托人共同实现的接口
**委派者角色:**具体任务的分配者
**具体任务角色:**具体任务的执行者
使用场景 :
派发工作任务,SelvletDispatcher
模式具体实现 :
一:抽象任务
public interface Target {
public void doing(String command);
}
二:委派角色
public class Leader implements Target {
private Map<String,Target> targets = new HashMap<String,Target>();
public Leader() {
targets.put("加密",new TargetA());
targets.put("登录",new TargetB());
}
//项目经理自己不干活
public void doing(String command) {
targets.get(command).doing(command);
}
}
三:具体任务角色
public class TargetA implements Target {
public void doing(String command) {
System.out.println("我是员工B,我现在开始干" + command + "工作");
}
}
public class TargetB implements Target {
public void doing(String command) {
System.out.println("我是员工A,我现在开始干" + command + "工作");
}
}
四 :测试
public class DelegateTest {
@Test
public void test_delegate(){
new Leader().doing("加密");
}
}