IT虾米网

委派模式——分配工作任务

lxf 2022年06月12日 架构师 409 0

一 代码位置

CSDN

二 代码

1 Boss

package Delegate; 
 
public class Boss { 
    public void command(String command,Leader leader){ 
        leader.doing(command); 
    } 
}

2 DelegateTest

package Delegate; 
 
public class DelegateTest { 
    public static void main( String[] args ) { 
        new Boss().command("登录",new Leader()); 
    } 
}

3 EmpolyeeA

package Delegate; 
 
public class EmpolyeeA implements IEmployee{ 
    @Override 
    public void doing( String command ) { 
        System.out.println("我是员工A,我现在开始干"+command+"工作"); 
    } 
}

4 EmpolyeeB

package Delegate; 
 
public class EmpolyeeB implements IEmployee{ 
    @Override 
    public void doing( String command ) { 
        System.out.println("我是员工B,我现在开始干"+command+"工作"); 
    } 
}

5 IEmployee

package Delegate; 
 
public interface IEmployee { 
    public void doing(String command); 
}

6 Leader

package Delegate; 
 
import java.util.HashMap; 
import java.util.Map; 
 
public class Leader implements IEmployee{ 
    private Map<String,IEmployee> targets = new HashMap<String,IEmployee>(); 
    public Leader(){ 
        targets.put("加密",new EmpolyeeA()); 
        targets.put("登录",new EmpolyeeB()); 
    } 
    @Override 
    public void doing( String command ) { 
        targets.get(command).doing(command); 
    } 
}

三 测试

我是员工B,我现在开始干登录工作

四 UML类图


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!