设计模式:委派模式

委派模式(delegate)的基本作用就是负责任务的调度和分配,它和代理模式很像但是委派模式注重的是结果,而代理模式注重的是过程。
下面我们举一个例子:老板把任务交给项目经理,项目经理再把任务分配给员工
首先创建一个员工接口:

public interface IEmployee {

    void doing(String command);
}

创建一个经理类:

/**
 * 项目经理类
 */
public class Leader implements IEmployee {

    private Map targetMap = new HashMap();

    public Leader() {

        targetMap.put("登录注册", new EmployeeA());
        targetMap.put("邀请好友", new EmployeeB());
    }

    public void doing(String command) {
        targetMap.get(command).doing(command);
    }
}

创建两个员工类

public class EmployeeA implements IEmployee {
    
    public void doing(String command) {
        System.out.println("我是员工A,我开始做:" + command +"功能");
    }
}
public class EmployeeB implements IEmployee {

    public void doing(String command) {
        System.out.println("我是员工B,我开始做:" + command + "功能");
    }
}

最后创建一个老板类:

public class Boss {

    public void command(String command, Leader leader) {
        leader.doing(command);
    }
}

测试代码:

public static void main(String[] args) {

        // 老板委派项目经理去做 '登录注册功能' -> 项目经理按照功能分配到具体员工身上 -> 员工开始根据需求开始干活
        new Boss().command("登录注册", new Leader());
    }

运行结果: 我是员工A,我开始做:登录注册功能

你可能感兴趣的:(设计模式:委派模式)