设计模式之委派模式
委派模式
-
委派模式结构图:
-
示例代码:
// 抽象任务类 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(); } } }
-
总结:
优点:能够将一个大型任务细化,然后通过统一管理这些子任务的完成情况实现任务的跟进,加快任务的执行效率;
缺点:需要根据任务的复杂程度进行不同的改变,在任务比较复杂的情况下,可能需要进行多重委派,容易造成紊乱.