设计模式之委派模式

委派模式

  1. 委派模式结构图:

  2. 示例代码:

    // 抽象任务类
    public interface Task {
    
        void doTask();
    }
    
    // 具体任务角色A
    public class ConcreteTaskA implements Task{
        @Override
        public void doTask() {
            System.out.println("具体任务类A执行任务======");
        }
    }
    
    // 具体任务角色B
    public class ConcreteTaskB implements Task{
        @Override
        public void doTask() {
            System.out.println("具体任务类B执行任务======");
        }
    }
    
    // 委派者角色
    public class Delegate implements Task{
        @Override
        public void doTask() {
            System.out.println("开始执行任务:");
            Task task = null;
            if (new Random().nextBoolean()){
                task = new ConcreteTaskA();
            }else {
                task = new ConcreteTaskB();
            }
            task.doTask();
        }
    }
    
    // 测试
    public class DelegateTest {
    
        public static void main(String[] args) {
            Delegate delegate = new Delegate();
            for (int i = 0; i < 10; i++) {
                delegate.doTask();
            }
        }
    }
    
    
  3. 总结:

    优点:能够将一个大型任务细化,然后通过统一管理这些子任务的完成情况实现任务的跟进,加快任务的执行效率;

    缺点:需要根据任务的复杂程度进行不同的改变,在任务比较复杂的情况下,可能需要进行多重委派,容易造成紊乱.

posted @ 2021-04-29 22:37  justKen  阅读(75)  评论(0编辑  收藏  举报