委派模式

163 阅读1分钟

1、创建一个Leader类(委派者)

package delegate;

import java.util.HashMap;
import java.util.Map;

public class Leader {

    private Map<String, ICode> coder = new HashMap<>();

    public Leader() {
        coder.put("A", new CoderA());
        coder.put("B", new CoderB());
    }

    public void dispatch(String target) {
        coder.get(target).coding(target);
    }

}

2、创建一个接口

package delegate;

public interface ICode {

    void coding(String task);

}

3、两个coder类

package delegate;

public class CoderA implements ICode {
    @Override
    public void coding(String task) {
        System.out.println("实现功能" + task);
    }
}
package delegate;

public class CoderB implements ICode {
    @Override
    public void coding(String task) {
        System.out.println("实现功能" + task);
    }
}

4、测试(把任务委托给委托者,由委托者分配任务给实施者)

package delegate;

public class DelegateTest {

    public static void main(String[] args) {
        Leader leader = new Leader();
        leader.dispatch("A");
        leader.dispatch("B");
    }
    
}