委派模式不是23种设计模式之一,但它也是常用的设计模式,它是静态代理和策略模式一种特殊的组合。委派者要持有被委派者的引用 委派的核心:就是分发、调度、派遣。在SPring源码中也常常出现委派模式。
1.代码实现
public interface IEmployee {
public void hardwork(String work);
}
public class Employee_HR implements IEmployee {
public void hardwork(String work) {
System.out.println("我是HR,我负责招聘");
}
}
public class Employee_Salesman implements IEmployee{
public void hardwork(String work) {
System.out.println("我是销售,我负责销售产品");
}
}
public class Leader implements IEmployee {
private Map<String,IEmployee> workmap = new HashMap<String,IEmployee>();
public Leader() {
workmap.put("招聘",new Employee_HR());
workmap.put("销售",new Employee_Salesman());
}
public void hardwork(String work) {
IEmployee employee = workmap.get(work);
if(employee!=null) {
employee.hardwork(work);
}else {
System.out.println("没有该岗位");
}
}
}
public class Boss {
public static void main(String[] args) {
Leader leader = new Leader();
leader.hardwork("招聘");
}
}
我们来看看类的层级关系
类的层级关系很简单,继承公共的接口类,有上下级关系,Boss类负责发命令,leader类差遣调度,对外隐藏内部实现,其他的类负责做具体的事。这就是委派类的特点。